【发布时间】:2015-04-03 11:41:35
【问题描述】:
我绕过 ORM 并使用 Model.query 函数从 PostgreSQL 查询并返回一个“大”结果集。该查询返回大约 200 万行。当直接从 postgres 运行查询时,它会在 20 秒左右返回。从sails 执行时,查询会静默失败。可以返回的行数有限制吗?
【问题讨论】:
标签: node.js sails.js waterline sails-postgresql
我绕过 ORM 并使用 Model.query 函数从 PostgreSQL 查询并返回一个“大”结果集。该查询返回大约 200 万行。当直接从 postgres 运行查询时,它会在 20 秒左右返回。从sails 执行时,查询会静默失败。可以返回的行数有限制吗?
【问题讨论】:
标签: node.js sails.js waterline sails-postgresql
可以返回的行数有限制吗?
不,没有限制。
从sails 执行时,查询会静默失败
“默默地失败”是什么意思?你怎么知道它失败了?它可能仍在处理中;或者适配器可能存在您违反的连接超时。
200 万行从数据库中序列化出来,转换为 JSON,然后通过管道传送到客户端,这与直接在数据库上运行 SQL 相比非常不同。这可能需要 20 倍的时间,具体取决于您的系统资源情况。我强烈建议使用sails.js 的分页功能将数据分块提取出来。在一次操作中从 Web 服务器中提取 200 万行并没有多大意义。
【讨论】: