MyCat的分片查询原理

上一篇 <<<分表分库与分区的区别及拆分策略
下一篇 >>>Sharding-Jdbc实现读写分离


核心原理:
a、非分片关键字查询会搜索所有的分库分表,结果归并后按照sql语句排序返回,如果未设置排序,则按分库随机返回结果
b、分片关键字查询会直接定位到对应的分库,执行相应的sql语句返回结果。

以求模分片方式为例验证:
修改/usr/local/mycat/conf/log4j2.xml日志级别为debug,即可查询查询语句。

1.非分片关键字查询,则会读取所有分片中的结果,然后按sql需求返回。

select * from `user`;-----分库查询所有的结果归并后返回,没有排序结果可能会乱
select * from `user` limit 0,2;----分库查询所有的结果,归并后随机返回结果
select * from `user` order by id desc limit 0,2;--分库查询,归并后按顺序返回
select * from `user` where `name`='kk' order by id desc limit 0,2;

2.分片关键字查询,则直接读取所在库。

select * from `user` where id=5 order by id desc limit 0,2;

推荐阅读:
<< << <<<分表分库与分区的区别及拆分策略
<< << <<

你可能感兴趣的:(MyCat的分片查询原理)