通过本文 *** 作,搭建静态结构如下图的一个MyCat集群。为了节省资源,3个物理库都将存放在同一个MySQL实例当中。
MyCat的配置文件集中在其配置文件夹/usr/local/mycat/conf内,以下工作将以该文件夹为基准。
备份原有路由规则文件rule.xml后,将整个rule.xml改写成如下内容:
备份原有虚拟库文件schema.xml后,将整个schema.xml改写成如下内容:
备份原有服务器配置文件server.xml后,将整个server.xml改写成如下内容:
备份原有ZooKeeper连接文件myid.properties后,将整个myid.properties改写成如下内容:
确认MySQL数据节点(192.168.35.125)正常运作后,在MyCat节点(192.168.35.121)上,以 *** 作系统用户root执行以下命令,启动MyCat。
在MySQL数据节点(192.168.35.125)上,使用如下语句打开 到MyCat的连接 。
屏幕显示如下,标志着我们已经可以通过访问虚拟表TESTDB.test_tbl,来获取分布在不同物理库mycat00、mycat01和mycat02里的同名物理表test_tbl的所有数据。
屏幕最后会显示如下内容。我们已经可以通过虚拟表TESTDB.test_tbl进行增删改 *** 作了。
在MySQL数据节点(192.168.35.125)上,使用如下语句打开 到MySQL物理库的连接 ,查看各个物理库的内容。
屏幕最后会显示如下内容。我们设置的分片路由规则起了效果,增删改的 *** 作反映到了对应的物理库中。
web项目使用 mybatis+mycat+mysql 的结构。mycat作为中间件,mysql 使用多库分表
存在两张表: t_table (表的元数据信息) 和 t_table_field (表的字段信息)。
逻辑上, t_table_field 是作为 t_table 的子表。
t_table_field 某业务需求,为了减少 mybatis <>mycat 之间的网络IO,考虑使用批量插入数据。
mycat要使用批量插入数据,需要注意一下两点:
sql需要指明 Catlet -> BatchInsertSequence
sequence_db_conf.properties
schema.xml
t_table 和 t_table_field 表分了2个节点,rule 是根据ID取模(id % 2)分片。
t_table_field 表的配置要声明 primaryKey autoIncrement 属性。
MyCat实际发送到MySQL的SQL是组装上 ID 字段的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)