写点什么

使用 Mycat 进行 MySQL 单库分表

作者:迷彩
  • 2022 年 6 月 23 日
  • 本文字数:746 字

    阅读完需:约 2 分钟

一、Mycat 安装部署

准备:

安装环境 Linux

目前只有 1.6.5 版本支持单库分表。

下载 Mycat 1.6.5 wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20171029183033-linux.tar.gz

解压后,修改配置文件,在 mycat/conf 下


1.修改 server.xml



设置 user name,password 及 schemas,  name 和 password 要在 Mycat 连接 MySQL 数据库时使用,schemas 是逻辑库,要和 schema.xml 里的 schema name 对应。

2.修改 schema.xml



如图,schema name 要和 server.xml 对应上,user 表设置分表十张,只能设置一个 datanote,rule 采用取模模式 mod-long。writeHost 和 readHost 设为同一台数据库。

3.修改 rule.xml



此次选用默认的 mod-long 规则,只需修改 count 数,对应上 subTables 数即可。


修改 property count 等于 10。

这样,配置已经完成。

二、启动 Mycat 及连接 MySQL


先在 MySQL 库上,建 10 张表,user1-user10。

1.进入 Mycat 包下的 bin 目录,启动 Mycat   
./mycat start
复制代码
2.连接 MySQL  



mysql -utest -ptest -h127.0.0.1 -P8066 -Dzhenxui
复制代码
3.查询 Mycat 用户



4.查询分表



10 张子表全部查出

5.往库中 insert 数据





之前已经插入 40 条数据。 由图可以得知,50 条数据是均分到 10 张子表上。

注:插入时要自己写 ID。

由此,实现 MySQL 单库分表及实现数据均分。


总结

MySQL 数据库分库分表不是开发中必须的一步,并不是必选项,他是根据你的业务量以及其他综合因素决定的,当你的数据表中的数据量过多导致当个文件过大时,你可以根据数据存储的具体情况使用相应的策略进行切片,这能避免大幅度修改代码甚至无需修改代码即可解决问题。如果根据策略使用分库分表,需要对项目进行一定的修改,而且分表也给数据的读取增加了一定的复杂度,特别是多表联合查询。还需要注意的是,如果到了不得不分库分表的时候,设计分库分表的策略一定想得长远一点,想得细一点,以应对后续的业务变化

发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:互联网有啥事 2020.06.18 加入

修bug的菜鸟~公众号:互联网有啥事

评论

发布
暂无评论
使用Mycat进行MySQL单库分表_架构_迷彩_InfoQ写作社区