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),肯定不对啊
浙公网安备 33010602011771号