【发布时间】:2015-01-19 22:43:16
【问题描述】:
得益于 SQLite3 包,Node.js 为 SQLite 提供了一些非常好的绑定,但不幸的是,由于 Node 运行单线程,所有查询都在同一个连接中完成。 SQLite 以串行方式运行每个连接的所有查询,这意味着在 Node 下的 SQLite 中实际上不可能进行并行查询。 更多详情请查看https://github.com/mapbox/node-sqlite3/issues/394
无论您将查询逻辑包装在 async.each/async.parallel 中,还是用于并行化/序列化数据库 IO 的任何其他帮助程序包中,这都是正确的。归根结底,要从 SQLite3 下 Node 的异步 IO 架构中受益,您将需要多个处理线程。
如何做到这一点? :)
【问题讨论】:
-
为什么需要并行查询?你想解决什么问题?
-
一次运行多个查询,每个查询的结果不相互依赖,使用 UNION ALL 会变得非常混乱:)
标签: javascript node.js multithreading sqlite