亿万级分库分表后如何进行跨表分页查询
原文中文,约6300字,阅读约需15分钟。
📝
内容提要
在应用系统开发中,很少需要进行数据分库或分表操作。通常使用ORM和连接查询来提高开发效率。但在分表场景下,可采用全局表查询、禁止跳页查询、按日期二次查询、大数据集成和NewSql法等方法解决分页查询问题。每种方法都有优缺点,需根据具体情况选择合适方法。
🎯
关键要点
-
在常规应用系统开发中,分库或分表操作很少需要,通常使用ORM和连接查询提高效率。
-
电商场景中,用户和订单数据通常按用户编号或订单编号进行分表。
-
淘宝采用双写订单策略,使用冗余数据库来规避资源抢夺问题。
-
全局表查询将分表数据主键集中存储,提高查询效率,但数据增长会增加压力。
-
禁止跳页查询使用时间戳替代传统分页,适用于数据精度要求不高的场景。
-
按日期的二次查询法通过分布数据到多个表中解决性能和精度问题,但需注意分表规则和内存合并性能。
-
大数据集成法适用于数据量大时,使用ELK等大数据套件解决分页问题。
-
NewSql法迁移到分布式数据库,支持关系数据库间的无障碍迁移。
-
有序的二次查询法基于按日期的二次查询法,确保数据块连续,适合最近17天的分页数据查询。
-
分页算法通过计算跳过的记录数和选取的记录数,模拟数据分页情况。
-
并行查询和排序可以提高查询效率,但有一定局限性,需确保数据块连续。
🏷️