使用Mycat进行MySQL单库分表

举报
迷彩 发表于 2023/04/24 14:42:45 2023/04/24
【摘要】 一、Mycat安装部署准备:安装环境Linuxmycat运行时需要java开发环境,所以需要安装JDK安装之前先检查一下系统有没有自带open-jdk命令:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输入信息表示没有安装。如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps ...

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。