高效的 SQL 表合并和分页



我有 5 个不同的表,即:

  • 存款
  • 提款
  • 付款
  • 转移
  • 交流

我需要合并这些表并将分页结果从NodejsAPI 返回给客户端。我不知道如何有效地做到这一点,因为表真的很大(每个表>100K行(。

我在想我可以采取的两种方法。

  1. 将单个查询结果从每个表流式传输到节点 js 后端,并在那里实现一些合并逻辑。

  1. >以某种方式在数据库级别执行合并,方法是创建某种虚拟表或一些持久化视图,并对其执行查询。

你们怎么看?

谢谢你的时间!

如果您打算使用数据库数据进行操作,那么从我的角度来看,实现这一目标的最有效方法是在数据库级别,通过 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 返回数据。返回数据使用过程。

最新更新