基于MyCat实现MySQL分库分表

数据库 收藏 0 294
FREE VIP 2020-01-19 11:53:04

说明:此文章只有分库分表的配置,mycat安装与读写分离请参考:

https://freees.cn/article_detail?article_id=20&nav_id=6


1. 现有一张70多万条数据的表article_original,将其按id取余的方式分成三张表分别放在三个服务器中的数据库

表文件 article_origina.sql 需要可以下载:https://www.freees.cn/article_original.sql

 insert into article(id,title,summary,publisher,push_time,type,tag,source_url,web_site,crawl_time)

 select id,title,summary,publisher,push_time,type,tag,source_url,web_site,crawl_time from article_original where id%3=1;

  insert into article(id,title,summary,publisher,push_time,type,tag,source_url,web_site,crawl_time)

 select id,title,summary,publisher,push_time,type,tag,source_url,web_site,crawl_time from article_original where id%3=2;


 insert into article(id,title,summary,publisher,push_time,type,tag,source_url,web_site,crawl_time)

 select id,title,summary,publisher,push_time,type,tag,source_url,web_site,crawl_time from article_original where id%3=0;

undefined

1. 配置mycat配置文件

schema.xml

Table标签中rule属性是调用rule.xml中的分片规则

Schema标签中逻辑库就是依赖于分库的三个真是数据库另外定义的名称,要与server.xml 中的配置对应

undefined

2.Server.xml

Article为逻辑库名称与schema.xml中对应

多个逻辑库用逗号隔开

undefined

3.Rule.xml

  tableRule标签只能对应一个字段,需求不够可自行添加

undefined

Rule.xml向下翻:

上面调用的函数,classJava的依赖库

Count为分片的数量

undefined

4.启动mycat

[user_mycat@localhost bin]$ ./mycat start


5.连接mycat

Ipmycat所在的服务器

端口号与账户在server.xml中配置


6.连接mycat

Ipmycat所在的服务器

端口号与账户在server.xml中配置

undefined

7.测试查询

注:navicat无法直接打开逻辑库,需要用sql语句查询

undefined

8.测试插入:

undefined

扩展:分库下有多个表怎么配置?多个逻辑库怎么配置

参考:

undefined

undefined

评论
  • 消灭零回复