![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyCat
猴子敲代码
猴子胖成猩猩
展开
-
Mycat根据字符串分库分表
在开发IT610项目的时候遇到了一个需求,Tag表要根据TagName的首字母进行分表分库(如果首字母不是字母则视其首字母为0),一个首字母占一个分片,26个字母+1个其他类型总共27个分片。这里我选择使用枚举分片,rule.xml里应当如下配置(tableRule标签的原名是“sharding-by-intfile”,functin标签的原名是“hash-int”)<tableRule name="tag"> <rule> <columns>letter原创 2021-07-22 16:31:02 · 599 阅读 · 0 评论 -
水平分表+ER分片
在复杂业务逻辑的时候,会出现B表依赖于A表的情况(B表的外键是A表的主键),比如文章详情表(content_ext)依赖于文章表(content)。当我们对文章表进行水平分表的时候,join操作文章表和文章详情表就会很困难。所以将文章详情表(子表)的记录与所关联的文章表(父表)的记录放在同一个数据分片上,这样在同一个分片上join操作就会容易的多。文章表(content)文章详情表(content_ext)注:content_id为外键文章图片表(content_picture)原创 2021-07-21 10:14:37 · 153 阅读 · 0 评论 -
Mycat根据取模水平分表
这里使用的是Mycat的取模规则,对主键进行取模,根据取模的结果决定该数据存储到哪个dataNode中。我这里有两个MySQL,一个是本地的,一个是服务器上的,这俩有一张一模一样的user表,如图所示:这里是有两个dataNode,所以取模结果最高是2,在rule.xml里要配置count属性的值为2。这里直接上结果演示,配置文件的内容见案例文件先插入十条数据:然后查询一下,很明显2、4、8、10是一个数据节点里的,1、3、5、7、9是一个数据节点里的。然后去本.原创 2021-07-19 14:11:57 · 278 阅读 · 0 评论 -
Mycat配置读写分离
Mycat有三个关键的配置文件手头有两个mysql数据库,一个在服务器,一个在本机,都有一个名为mycat2的数据库,里面只有一张user表,本地的mysql里没有数据。先配置schema.xml文件:然后配置server.xml文件:然后启动mycat,在SQLyon里连接mycat,可以看到有一个逻辑库和一张逻辑表,从表里查出的数据正是配置为读操作的服务器上的数据库里的内容。我们往逻辑表user里写入点数据:INSERT INTO `us原创 2021-07-19 14:07:21 · 152 阅读 · 1 评论 -
Mycat的基本概念和主要特性
在APP(应用)里调用的User_DB就是逻辑库,逻辑库是由一个或多个物理库组成,图中分库分表的规则是根据User_id的值取模来决定存入哪个物理库的。在逻辑库里的数据库表叫逻辑表,逻辑库User_DB里有一张逻辑表user_inf,user_inf也是由一个或多个物理库里的数据库表组成。 ...原创 2021-07-19 14:04:05 · 77 阅读 · 0 评论 -
安装MyCat
MyCat是一直支持分库分表的数据库中间件打开MyCat下载地址,这里选择下载1.6-RELEASE的Windows环境版本。https://github.com/MyCATApache/Mycat-Server #github地址,里面有具体怎么用http://dl.mycat.io #下载地址解压后打开bin目录,双击startup_nowrap.bat后启动mycat,如果没报错就说明启动成功。启动后用数据库连接工具连接一下:默认端口8066默认用户和密码在serve原创 2021-07-19 14:02:12 · 74 阅读 · 0 评论