基于mybatis自己实现分表

由于业务增长,需要分表处理。实现思路:

1.使用一致性hash算法通过业务id来计算数据属于哪张表

一致性hash算法参考:https://www.jianshu.com/p/ded630cb6d6c

2.使用自定义注解获取业务id,在需要分表接口实现类加入自定义注解。然后注解下的mapper方法获取到分表名进行sql替换。需注意的是自定义的mapper无法通过自定义注解和处理器替换表名,需要逐个改造。

3.使用mybatis动态表名处理器接口自己实现替换表名

4.可以先预估一个分表的量,然后分N张表。数据量参考可以单表最多500万或单表2G,后期数据量增多可以考虑数据迁移。

5.数据存储时可以把分表索引存储到id中,这样查询数据时可以通过id定位到具体分表。

posted @ 2022-04-20 11:52  蓝领笑笑生  阅读(592)  评论(0编辑  收藏  举报