上一篇 <<<分表分库与分区的区别及拆分策略
下一篇 >>>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;

推荐阅读:
<<<MySQL自带主从复制原理
<<<MyCat实现读写分离与动态数据源切换
<<<分表分库与分区的区别及拆分策略
<<<Sharding-Jdbc实现读写分离
<<<Sharding-Jdbc的分片算法及分表分库
<<<Sharding-Jdbc与MyCat区别
网友评论