shardingjdbc 双复合键分片思路

复合分片 就是多个键都可以计算出分片的位置。但真正分片的还是其中的某一个键A,只不过若传的是其他键B C,则要通过B C 间接的获取出A

分库分表都用user_id,但还要可以使用order_id来查询,所以order_id内包含user_id 。分库分表的键采用复合键,order_id或者user_id。 若传了user_id,直接取模 ,若传了order_id,则解析处order_id内包含的用户id,再跟库的数量取模,跟表的数量取模

想象一下,如果真正分片的是多个键,那如果只用其中一个键查询,计算出的分片索引就不对了,插入的时候算法为func(a+b),查询的时候算法执行为func(null+b),肯定不对啊

 

https://www.jianshu.com/p/4aed141b3000

posted @ 2023-03-26 16:31  来自China的神秘人  阅读(134)  评论(0)    收藏  举报