一、Mycat安装部署
准备:
安装环境Linux
mycat运行时需要java开发环境,所以需要安装JDK
安装之前先检查一下系统有没有自带open-jdk
命令:
rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj
如果没有输入信息表示没有安装。
如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps
批量卸载所有带有Java的文件 这句命令的关键字是java
首先检索包含java的列表
yum list java* 检索1.8的列表yum list java-1.8*
安装1.8.0的所有文件
yum install java-1.8.0-openjdk* -y
使用命令检查是否安装成功
java -version
安装mycat
mycat是从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下
Mycat是一个数据库中间件,并不具备数据存储的功能,可以简单理解为是一个中间代理人,相当于一个中介或者跑腿打杂的。帮你把数据处理整合起来,所以为实现数据的存储,需要部署物理数据库的支持,需要安装MySQL(这里就当你已经安装好了MySQL,不再赘述MySQL的安装)。
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数据库分库分表不是开发中必须的一步,并不是必选项,他是根据你的业务量以及其他综合因素决定的,当你的数据表中的数据量过多导致当个文件过大时,你可以根据数据存储的具体情况使用相应的策略进行切片,这能避免大幅度修改代码甚至无需修改代码即可解决问题。如果根据策略使用分库分表,需要对项目进行一定的修改,而且分表也给数据的读取增加了一定的复杂度,特别是多表联合查询。还需要注意的是,如果到了不得不分库分表的时候,设计分库分表的策略一定想得长远一点,想得细一点,以应对后续的业务变化