- 浏览: 1146801 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
l 需求
u 实现MySQL自带的字段值自动增长等效的功能;
u 同一应用集群中数据库表的自增类型字段值具有全局唯一性;
u 支持数据库级别的水平拆分表,同时还需要支持数据库内部的水平拆分表,其ID值都来源于同一条配置记录;
l 存储设计
序列产生器配置表increment_config结构:
列名称 | 数据类型 | 是否为空 | 默认值 | 是否自增 | 主键/索引 | 备注 |
ID | INT UNSIGNED | N | AUTO_INCREMENT | PRIMARY KEY(ID) | 唯一标示,无意义 | |
TABLE_NAME | VARCHAR(40) | N | UNIQUE INDEX | 表名称 | ||
TABLE_TOTAL | TINYINT UNSIGNED | N | 0 | 标记数据库内分表的数量 | ||
COLUMN_NAME | VARCHAR(40) | N | 字段名称 | |||
START_VALUE | BIGINT UNSIGNED | N | 1 | 开始值 | ||
OFFSET_VALUE | SMALLINT UNSIGNED | N | 10000 | 增长的步长 | ||
FLAG | TINYINT | N | 0 | 0–正常;1–作废值 | ||
GMT_MODIFIED | TIMESTAMP | N | 数据库自动更新此值 |
备注:
1>. GMT_MODIFIED不由程序或人为主动去负责更新与填写,而是通过数据库的特性自动填写与更新;
2>. 对于数据库内部的水平分表,即TABLE_TOTAL<>0,则通过TABLE_NAME+TABLE_TOTAL组合区分;
l 对存储表的操作
u 初始化的 SQL
对于需要用到序列产生器的表,则在此配置表中增加一条记录,例如:
INSERT INTO(TABLE_NAME,TABLE_TOTAL,COLUMN_NAME,START_VALUE,OFFSET_VALUE,FLAG)
VALUES(‘msg_’,23, ’MSG_ID’,1,10000,0);
u 序列生成器操作的 SQL
程序每次获得序列区间段,以及更新相关数据值操作的事务的过程SQL,假设msg_系列表对应的记录,在配置表中ID=1。
START TRNSACTION;
SELECT ID, TABLE_NAME,COLUMN_NAME,START_VALUE,START_VALUE+OFFSET_VALUE AS END_VALUE
FROM increment_config WHERE ID=1 FOR UPDATE;
UPDATE increment_config SET START_VALUE=START_VALUE+OFFSET_VALUE WHERE ID=1;
COMMIT;
l 程序实现建议
u 为提供序列产生的速度,而提高业务处理的性能。程序需要以拿序列区间的方式实现,而不是每次需要的时候,都要去数据库获得序列号值;
u 程序在每次启动的时候,要初始化配置表中所有有效记录的序列区间值;
u 当程序拿到的区间值START_VALUE,经过一段时间使用后达到:START_VALUE=END_VALUE,处理步骤如下:
1>. 挂起当前的序列调用请求;
2>. 做序列区间值获取的事务;
3>. 把新获得区间值的START_VALUE,给予挂起的调用请求;
总结:每个区间值的最大值(END_VALUE)始终作为当前期间的弃用值。
发表评论
-
MySQL中GBK与UTF-8的区别
2013-02-11 17:53 1595在MySQL中,如果数据库只需要支持一般中文,数据量很大,性 ... -
MySQL中Utf8_general_ci 和 utf8_unicode_ci的区别
2013-02-11 17:51 1248对中、英文来说没有实质的差别。 utf8_gener ... -
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUM
2012-11-09 11:13 7449SHOW VARIABLES LIKE 'coll%'; ... -
修改MySQL字符编码
2012-11-07 08:24 1003修改编码其实是为了支持中文~ 1. 编译级别。由于缺乏 ... -
INNER LEFT RIGHT JOIN
2012-09-07 10:35 1144CREATE TABLE `a` ( `a1` VARC ... -
MySQL设置字符集为UTF8(Windows版)
2012-08-07 08:40 8922Windows版MySQL设置字符集全部为utf8的方式 ... -
【绿色MySQL设置技巧】
2012-07-07 21:31 12121. mysql 远程连接数据 ... -
查询表Y中数据不存在与表X中的数据使用Left JOIN
2012-06-26 12:39 1096看看我写的对不对,查询接着显示表Y中的数据8,4,p 表X有 ... -
mysql 性能优化方案
2012-04-28 17:18 1021网上有不少mysql 性能优 ... -
设置自动清理mysql binlog日志和手动删除的方法
2012-04-28 17:17 1645MYSQL主从复制(replication)采用 RBR 模式 ... -
InnoDB引擎表的主键选型
2012-04-28 11:41 1424【导读】 MySQL采用开放可插入式存储引擎架构,提供 ... -
数据库设计范式
2012-04-14 11:05 1012数据库设计三范式 第一范式(1NF):数据库表中的字段都是单一 ... -
11 条重要的数据库设计规则
2012-04-14 11:03 989在你开始阅读这篇文章 ... -
11 步教你选择最稳定的 MySQL 版本
2012-04-01 19:59 1101MySQL开源数据库有多个重要分支,目前拥有的分支分别为:My ... -
连接MySQL数据库生成JavaBean
2012-03-28 08:28 9387做网站时,感觉数据库的设计比较重要,当花了很多时间设计好数据库 ... -
MySQL 分区
2012-03-06 10:31 1201MYSQL 存储过程,定义告 ... -
POWERDESIGNER 教程
2012-02-26 12:03 1475一)概念数据模型 目标 : 本文主要介绍Powe ... -
powerdesigner 使用的十五个问题
2012-02-24 14:22 1325PowerDesigner的主要作用一般还是数据库建模,并生成 ... -
数据库设计原则
2012-02-21 07:41 1029原始单据与实体之间的关系 可以是一对一、一对多、多对多的关 ... -
修改mysql root的密码
2012-01-20 08:38 1005mysql> UPDATE mysql. ...
相关推荐
ruoyi框架集成postgresql,对自增表设置序列
在数据库应用中,序列是一种常用的数据对象,它能够自动产生唯一的数值,常用于实现表中的主键自增功能。Oracle数据库提供了强大的序列管理功能,可以方便地创建、管理和使用序列。本文将详细介绍如何在Oracle数据库...
在Oracle数据库中实现主键自增功能可以通过创建序列(sequence)与触发器(trigger)相结合的方式实现。这种方式不仅能够确保数据表中的主键唯一性,还能自动递增,极大地简化了开发人员的工作。 #### 创建Sequence...
在Oracle数据库中,由于没有像MySQL的`auto_increment`或者SQL Server的`IDENTITY`这样的内置机制,所以自增序列的实现通常需要借助于Oracle的`SEQUENCE`对象。MyBatis,作为一个强大的ORM(对象关系映射)框架,...
Oracle数据库在设计关系型数据库时,常常需要使用到自增序列和触发器来实现自动增长的主键。自增序列可以确保数据的唯一性,而触发器则可以在特定事件(如INSERT、UPDATE或DELETE)发生时执行一些额外的操作。本...
### Oracle通过触发器实现序列自增 在Oracle数据库中,序列是一种非常实用的对象,它可以用于自动产生唯一的数值。本文将详细介绍如何通过触发器与序列相结合的方式,在Oracle数据库中实现记录的自增功能。 #### ...
扩频通信中PN序列产生器的设计是通信领域的一个重要课题,尤其在课设或项目实践中。PN序列,也称为伪随机噪声序列,是扩频通信系统的基础,它们用于调制信号,以达到抗干扰、保密通信的目的。在这个设计任务中,主要...
Oracle数据库中,自增序列通常通过Sequence对象实现,而MySQL则通过在表定义中设置`AUTO_INCREMENT`属性来实现自增主键。 在描述中,我们看到一个具体的例子,首先创建了一个名为`test`的MySQL表,包含两个字段:`...
在MySQL中,自增序列(Sequence)是一种常用于生成唯一标识符的数据结构,尤其是在Oracle数据库中广泛使用。然而,MySQL自身并不直接支持Sequence,但可以通过创建表和存储过程来模拟这个功能。本教程将详细解释如何...
Oracle 数据库中实现属性的自增是通过序列和触发器来实现的。当给表中插入数据时触发触发器,触发器从序列中得到相应的数值放入相应的位置,这样实现属性的自增。 知识点一: Oracle 中没有 auto_increment 属性 ...
基于SIMULINK的M序列产生器 M 序列是一种典型的伪随机序列,在数字通信技术中具有广泛的应用。伪随机序列在误码率测量、时延测量、扩谱通信、密码及多径分离等方面都具有重要的作用。以下是关于M序列的知识点总结:...
Java中的快速ID自增器通常是通过以下几种方式实现的: 1. **原子类**:Java的`AtomicLong`类是线程安全的,可以用于实现自增ID。每次获取新ID时,只需要调用`incrementAndGet()`方法,该方法会原子性地增加当前值并...
总结来说,Oracle数据库表序列ID自增生成器结合了序列和触发器的概念,实现了主键ID的自动增长。这种机制在处理大量数据和并发操作时,能确保数据的完整性和一致性。了解并熟练运用这些知识点,对于进行高效的Oracle...
标题中的“FSK m序列产生器”指的是使用FSK(Frequency Shift Keying,频率移键调制)技术的m序列生成模块。FSK是一种常见的数字调制方式,它通过改变载波频率来传递数字信息。在无线通信、数据传输等领域广泛应用。...
长序列卷积的实现 长序列卷积的实现 长序列卷积的实现 长序列卷积的实现 长序列卷积的实现 长序列卷积的实现
Oracle 数据库通过序列(Sequence)这一特性支持自增字段的实现。本文将详细介绍如何利用 Oracle 的序列功能来创建自增字段,并探讨其相关的配置选项及应用场景。 ### 创建序列 (Create Sequence) #### 基本语法与...
在Oracle数据库中,实现ID自增的一种常见方法是通过结合使用序列(Sequence)和触发器(Trigger)。这种方法非常实用,特别是在需要为表中的记录自动生成唯一标识符的情况下。 ##### 创建序列(Sequence) 首先,...
- 在MyISAM之外的数据表类型中,如InnoDB,可以通过创建包含自增字段的复合索引来实现多个独立的自增序列,前提是前面的字段组合确保唯一性。 6. **不同存储引擎的差异**: - MyISAM不重用删除的最大编号,而BDB...
7. **软件实现**:描述中提到的“序列检测器.docx”文档可能包含程序的详细描述、算法流程图或者代码实现。阅读这份文档可以帮助我们理解序列检测器的具体工作原理和实现细节。 综上所述,序列检测是一个涵盖广泛IT...
下面将详细介绍如何利用Oracle序列来实现主键的自增长。 #### 一、创建序列 **基本语法** 首先,我们需要创建一个序列。以下是一个基本的创建序列的语法结构: ```sql CREATE SEQUENCE 序列名 INCREMENT BY 增量...