专栏名称: Java基基
一个苦练基本功的 Java 公众号,所以取名 Java 基基
今天看啥  ›  专栏  ›  Java基基

分库分表后,如何优雅的实现高效分页查询?

Java基基  · 公众号  · 科技自媒体  · 2024-12-19 11:55
    

主要观点总结

本文主要介绍了在分库分表场景下解决分页查询问题的多种方案,包括全局查询、平均分页、禁用跨页查询、换用中间件、二次查询和引入中间表等。文章详细解释了每种方案的基本原理、应用场景和优缺点,并提供了具体的实现步骤和注意事项。

关键观点总结

关键观点1: 全局查询

全局查询是在分库分表中实现分页查询的一种常见方法,但性能较差,特别是在偏移量较大时。它通过在所有目标表上执行查询,然后合并结果来得到全局排序的数据。

关键观点2: 平均分页

平均分页是一种简单的分页策略,它在每个分表上进行分页查询,然后将结果合并。但这种方法存在精度问题,因为不能保证返回的数据是全局有序的。

关键观点3: 禁用跨页查询

禁用跨页查询是一种有效的策略,它通过限制用户的操作(如只允许逐页往后翻)来减少分页查询的复杂性。这种方法在移动应用等场景中非常适用。

关键观点4: 换用中间件

换用中间件是一种解决分库分表分页查询问题的策略,可以通过使用NoSQL数据库或分布式关系型数据库来简化问题。但这也可能带来其他挑战,如数据一致性和复杂性增加。

关键观点5: 二次查询

二次查询是一种较为复杂的策略,它首先获取数据的全局偏移量,然后根据这个偏移量进行第二次查询。这种方法可以实现精确的分页,但需要额外的计算和通信开销。

关键观点6: 引入中间表

引入中间表是一种辅助排序的策略,通过创建一个额外的表来存储排序相关的数据。这可以提高查询性能,但也可能带来数据一致性和维护成本的问题。


文章预览

👉  这是一个或许对你有用 的社群 🐱  一对一交流/面试小册/简历优化/求职解惑,欢迎加入 「 芋道快速开发平台 」 知识星球。 下面是星球提供的部分资料:   《项目实战(视频)》 :从书中学,往事中 “练 ” 《互联网高频面试题》 :面朝简历学习,春暖花开 《架构 x 系统设计》 :摧枯拉朽,掌控面试高频场景题 《精进 Java 学习指南》 :系统学习,互联网主流技术栈 《必读 Java 源码专栏》 :知其然,知其所以然 👉 这是一个或许对你有用的开源项目 国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。 功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能: Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud 视频 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览