Mysql系列八:Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用

 

一、Mycat和Sharding-jdbc的区别

1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包

2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码

Mycat(proxy中间件层):

Sharding-jdbc(TDDL为代表的应用层):

二、Mycat分片join

在前面的文章

<table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile">    <childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id">            <childTable name="order_items" joinKey="order_id" parentKey="id" />    </childTable>    <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id" parentKey="id" /></table>
复制代码

说明:

childTable:标签用来声明子表:

joinKey:声明子表的那个字段和父表关联

parentKey:声明父表的关联主键

primaryKey:父表自身的主键

三、Mycat分页中的坑

Mycat分页的大坑一定要注意:

在对应的分片上去查询分页数据的时候是从第一条记录开始扫描,然后再取出对应的分页数据,如

SELECT * FROM customer ORDER BY id LIMIT 1000100, 100;

这个sql语句被Mycat转化后

复制代码
1 -> dn1{SELECT * FROM customer ORDER 
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信