一、Mycat和Sharding-jdbc的区别
1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包
2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码
Mycat(proxy中间件层):

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

新增AI编程课程,引领技术教育新趋势
1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包
2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码
Mycat(proxy中间件层):

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

<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分页的大坑一定要注意:
在对应的分片上去查询分页数据的时候是从第一条记录开始扫描,然后再取出对应的分页数据,如
SELECT * FROM customer ORDER BY id LIMIT 1000100, 100;
这个sql语句被Mycat转化后
1 -> dn1{SELECT * FROM customer ORDER