【发布时间】:2022-07-07 22:33:58
【问题描述】:
最近我们注意到我们的应用程序性能不佳,使用 blocked-at 包发现 Sequelize (v5.22) 在大型查询中阻塞了节点事件循环。
查询并不复杂,只是FooModel.findAll(someOptions),也没有任何连接。只是结果可能高达 100k 行。
是否有一些已知的方法可以提高性能,或者至少确保事件循环不会被阻塞?
【问题讨论】:
-
看起来您需要使用分页来通过使用合理大小的块来获得 100k 条记录。一次获取所有内容是个坏主意,因为从 DB Sequelize 获取它们后,需要将它们转换为需要一些时间并在主线程中发生的对象。另一种方法是使用工作线程
标签: node.js sequelize.js event-loop