当查询的数据来自多个数据源,有哪些好的分页策略?
在业务系统开发中,有个列表页展示的数据比较多,数据需要从多个数据源查询,然后再将数据汇总,整理展示。
数据源可能有两种情况:
- 有可能数据来源不同的库。
- 有可能数据来源不同的API。
查询数据整合后,如何分页呢?
目前想到的方案:
- 数据同步,将所需数据源汇总到一张表中,然后相当于单表分页,如果数据源是 API 获取的,那怎么办呢?
- 内存中分页,将所数据查询出来,存放到内存中进行逻辑分页。
- 将查询出来的数据,汇总写入到 mongo 中,通过 mongo 进行分页。
感觉处理起这种多数据源,列表分页操作很麻烦,你有哪些很好的办法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
数据源来自不同api,需求上又要进行融合后分页,真的没啥太好办法,只能通过并发请求各api,做内存分页。
当然,我还会问自己2个问题:
我遇到过同样的问题。 一个项目的查询中心,数据源分布在关系型和MongoDB中。
对于业务来说,用户需要一个完整的业务场景,而数据会被分散到 MongoDB 和 Mysql 或者(SqlServer 中),也就是 Sql 和 Nosql 共存。
分页和权限都涉及到数据整合和中转,随即而来的是查询性能压力和维护复杂性。
这种问题的原因一般是系统初期对业务理解不充分,设计不合理,后期功能增加造成的业务债。 要从设计和功能拆分的角度彻底解决问题。
当然了,如果想维持现状,有几点建议
1 索引优化,代码优化
2 在业务可接受的情况下,做异步处理,这种仅仅适合导出类功能,可以异步导出。
还有一点,不管数据源有几种,做分页数据源也只能有一份主数据源,倾向于后端做分页为佳。
一则小故事-和时间一起做MongoDB的朋友
之前我整理的MongoDB使用中,有这个案例描述
找一个主表分页之后基于某个外键接着并发去别的源查?