垂直分片Demo - xinwu-yang/cube-java GitHub Wiki
Demo描述:使用本地时间戳主键,垂直拆分系统的业务为,db1存放用户表,db2存放订单表。
db1:
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` varchar(64) NOT NULL,
`realname` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
db2:
DROP TABLE IF EXISTS `sys_order`;
CREATE TABLE `sys_order` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` varchar(64) DEFAULT NULL,
`desp` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
system节点下配置:
<property name="sequenceHandlerType">2</property>
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn2">
<table name="sys_user" primaryKey="id" dataNode="dn1" />
<table name="sys_order" primaryKey="id" dataNode="dn2" autoIncrement="true" />
</schema>
<dataNode name="dn1" dataHost="25.30.10.224" database="db1" />
<dataNode name="dn2" dataHost="25.30.10.224" database="db2"/>
<dataHost name="25.30.10.224" maxCon="1000" minCon="5" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="jdbc:mysql://25.30.10.224:3306?characterEncoding=UTF-8" user="root" password="chengxun" />
</dataHost>
$MYCAT_HOME/bin/mycat start
jdbc:mysql://ip:8066/TESTDB