Mycat生成自动增长的ID

文章目录

场景

  • 使用mycat分库,同一个表要维持自增的不重复的ID, 使用根据ID求模的算法

实现步骤

  1. 新建一个单独的数据库

# 创建容器
docker create --name percona-dbseq \
-v /home/vagrant/docker/dockerfile/percona/dbseq/data:/var/lib/mysql \
-v /home/vagrant/docker/dockerfile/percona/dbseq/conf:/etc/my.cnf.d \
-p 3318:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

# 启动容器
docker start percona-dbseq && docker logs -f percona-dbseq

# 导入mycat/conf/dbseq.sql


# 插入表规则 表tb_house_resources从1开始 每次自增1
insert into MYCAT_SEQUENCE values ('TB_HOUSE_RESOURCES',1,1);

  1. 配置mycat
    1. 配置schema.xml (dataNode dataHosst配置新库的链接以及table)
    
    <dataNode name="dnseq" dataHost="dnseq" database="dbseq" />
    <dataHost name="dnseq" maxCon="1000" minCon="10" balance="1"
    		  writeType="1" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    	<heartbeat>select user()</heartbeat>
    	<writeHost host="W4" url="192.168.2.29:3318" user="root"
    			   password="root"/>
    </dataHost>
    # 新增autoIncrement="true" 
    <table name="tb_house_resources" primaryKey="id" autoIncrement="true" dataNode="dn3,dn4" rule="mod-long" />
    
    1. 配置server.xml
    # 0 表示是表示使用本地文件方式。1 表示的是根据数据库来生成,就是我们自己配置的自增长 2 表示时间戳的方式 ID= 64 位二进制 (42(毫秒)+5(机器 ID)+5(业务编码)+12(重复累加)
    <property name="sequnceHandlerType">1</property>
    
    1. 维护 sequence_db_conf.properties (维护表的自增规则 表:tb_house_resources dataNode:dnseq)
    	
    # 表转成大写
    TB_HOUSE_RESOURCES=dnseq
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值