我有 5 个不同的表,即:
- 存款
- 提款
- 付款
- 转移
- 交流
我需要合并这些表并将分页结果从Nodejs
API 返回给客户端。我不知道如何有效地做到这一点,因为表真的很大(每个表>100K行(。
我在想我可以采取的两种方法。
- 将单个查询结果从每个表流式传输到节点 js 后端,并在那里实现一些合并逻辑。
或
- >以某种方式在数据库级别执行合并,方法是创建某种虚拟表或一些持久化视图,并对其执行查询。
你们怎么看?
谢谢你的时间!
如果您打算使用数据库数据进行操作,那么从我的角度来看,实现这一目标的最有效方法是在数据库级别,通过 JOIN、UNION 或 Sub 查询利用组合技术编写特定的 SQL 视图或准备高级查询。上面说了,并假设Node.js流概念,对大型数据集采用流始终是一种很好的做法。
const request = new sql.Request()
request.stream = true // You can set streaming differently for each request
request.query('select * from verylargetable')
如果您希望进一步将此数据用于其他一些客户端应用程序,则可以考虑使用 CSV 字符串器 Node.js 包,将 SQL 输出数据转换为 CSV 文本格式。
如果不了解表的结构,很难提供解决方案。您可以使用通过内部联接创建的视图,并使用该视图选择属性以将数据返回到 API 请求,也可以直接使用 INNER JOIN 返回数据。返回数据使用过程。