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 · 606 阅读 · 0 评论 -
水平分表+ER分片
在复杂业务逻辑的时候,会出现B表依赖于A表的情况(B表的外键是A表的主键),比如文章详情表(content_ext)依赖于文章表(content)。当我们对文章表进行水平分表的时候,join操作文章表和文章详情表就会很困难。所以将文章详情表(子表)的记录与所关联的文章表(父表)的记录放在同一个数据分片上,这样在同一个分片上join操作就会容易的多。 文章表(content) 文章详情表(content_ext)注:content_id为外键 文章图片表(content_picture)原创 2021-07-21 10:14:37 · 155 阅读 · 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 · 154 阅读 · 1 评论 -
Mycat的基本概念和主要特性
在APP(应用)里调用的User_DB就是逻辑库,逻辑库是由一个或多个物理库组成,图中分库分表的规则是根据User_id的值取模来决定存入哪个物理库的。 在逻辑库里的数据库表叫逻辑表,逻辑库User_DB里有一张逻辑表user_inf,user_inf也是由一个或多个物理库里的数据库表组成。 ...原创 2021-07-19 14:04:05 · 78 阅读 · 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 评论