【发布时间】:2020-01-17 16:07:57
【问题描述】:
我有 5 个不同的表,即:
- 存款
- 提款
- 付款
- 转移
- 交流
我需要合并这些表并从Nodejs API 返回一个分页结果给客户端。我不知道如何有效地做到这一点,因为这些表真的很大(每个 > 100K 行)。
我正在考虑两种我可以采取的方法。
- 将每个表中的单个查询结果流式传输到节点 js 后端,并在那里实现一些合并逻辑。
或
- 以某种方式在数据库级别执行合并,方法是创建某种虚拟表或某些持久视图,然后对其执行查询。
你们觉得呢?
感谢您的宝贵时间!
【问题讨论】:
-
请显示这些表格的结构,以便我们能够更准确地提供帮助。一般来说,我会说,使用数据库做某事的最高效方式是在数据库上,例如带有视图或带有有效连接的准备好的语句。
-
在数据库中,是否有一个通用的“事务”表(如果没有,我会感到惊讶)?如果是这样,为什么不从中进行分页呢?
-
你用的是什么数据库?
-
有很多方法可以做到这一点,比如非规范化表格。您需要提供有关您的基础架构、数据库、索引以及您希望运行的查询等的更多信息...
-
出于什么目的需要这些表中的数据?是报告吗?您要根据这些记录进行计算吗?