在mycat中使用全局的ID     

在单库单表的环境下,基本上大部分为了方便,都是用的数据库自带的自增ID来作为主键。

然而在分库分表后这种方式还能用吗?

不能,现在一个表在多个库中,意味着每个库的自增ID都是一样的。

今天介绍下常用的一些分布式环境下全局ID的方案,当然很多是mycat自带的。

本地方式

在sequence_conf.properties中可配置ID的起始位置以及最大值等等。

默认就是使用这种方式,具体配置大家可以看里面的值。

然后修改server.xml, sequnceHandlerType 配置为0表示使用本地文件读取。

  1. <system><property name="sequnceHandlerType">0</property></system>

使用方式如下:

insert into user(id,name) values(next value for MYCATSEQ_GLOBAL,’test’);

这种方式有一个致命的缺点就是在 mycat 重启后,配置文件中癿 sequence 会恢复到初始值。

优点就是本地加载,读取速度较快。

既然重启后会

扫描下方二维码,加入Java方向技术交流讨论群。暗号:加群