条件跨数据库了 如何分页查询

2021-04-25 11:22:59 +08:00
 seagull7558

业务是这样的: 有两个表 ①ra 库.A 表 ②rb 库.B 表

需要分页查询 A 表并且去掉一部分数据,这部分需要去掉的数据存在于 B 表中 请问这个业务如何实现? 目前遇到的问题是 查 A 表 1-20 条 可能需要去掉 3 条数据 不好分页 也不太可能一次性查出来所有的数据在程序中进行分页

4960 次点击
所在节点    MySQL
26 条回复
masterclock
2021-04-25 18:31:46 +08:00
做过的方法:
1. PostgreSQL FDW
2. 复制到 ES
3. apache calcite
都行,各有优点缺点
passerbytiny
2021-04-25 18:44:02 +08:00
如果总结果数不大(少于 10000 行),那么直接全部查到内存中然后用代码分页。否则,要么重构数据模型设计(重新分配数据或者增加至少达到最终一致性的宂余数据,使得只需查一个库),要么重构需求,要么炒掉提需求的人。
labulaka521
2021-04-25 18:59:41 +08:00
notejava
2021-04-26 12:02:53 +08:00
既然做了分库,就不应该再考虑连表操作。
xiaoxinshiwo
2021-04-26 13:47:25 +08:00
sharding jdbc 或者 ES
weizhen199
2021-04-26 14:41:53 +08:00
你可以让应用承担一部分数据库中查询优化器的功能,判断下两张表的扫描模式和连结方式。




额,就是前面人说的 apache calcite

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/773074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX