Node.js 中的并行 SQLite 查询
Parallel SQLite queries in Node.js
Node
.js 由于 SQLite3 包,对 SQLite 有一些非常好的绑定,但不幸的是,由于 Node 运行单线程,所有查询都在同一连接中完成。SQLite 按连接串联运行所有查询,这意味着在 Node 下的 SQLite 中不可能实际执行并行查询。有关更多详细信息,请查看此 https://github.com/mapbox/node-sqlite3/issues/394
无论您将查询逻辑包装在 async.each/async.parallel 中,还是用于并行化/序列化数据库 IO 的任何其他帮助程序包中,都是如此。归根结底,要从SQLite3下的Node异步IO架构中受益,您将需要多个处理线程。
怎么能做到这一点?:)
您可以使用集群 api 创建子进程,在这些子进程内,您可以运行不同的操作,在您的情况下是数据库查询。 https://nodejs.org/api/cluster.html。
注意:要创建的集群数量取决于您的硬件。
const cluster = require('cluster');
const db = new sqlite3.Database(':memory:')
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
cluster.fork()
.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
cluster.fork()
.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else if (cluster.worker.id === 1){
db.run(QUERY1);
} else {
db.run(QUERY2);
}
相关文章:
- sqlite查询返回错误-can'我不知道为什么
- 从 JavaScript 对本地 SQLite 文件运行查询
- SQLite+Javascript:在每个其他函数中执行多个查询
- 插入查询中的问题--sqlite Phonegap
- 从sqlite数据库查询数据结果文件名
- Node.js 中的并行 SQLite 查询
- 在 HTML 中显示 SQLITE 数据库查询
- 获取在附加脚本中查询 sqlite db 的结果,以提交到内容脚本
- Phonegap SYNTAX_ERR上的 SQLITE 查询错误
- 参数化的select查询在使用sqlite数据库的angular js中不起作用
- 用于SQLite查询中循环的javascript
- SQLite更新查询在Phonegap中不起作用
- 使用ajax jQuery的sqlite查询
- 如何将具有phonegap数据库SQLite查询的内部函数的值返回到外部函数
- Sqlite.房子的查询
- 匹配十六进制值与SQLite查询像JavaScript
- 将sqlite查询结果添加到angularjs的$scope中
- 使用Javascript从文件查询SQLite数据库
- PhoneGap的SQLite查询Ñ字符(拉丁文)不能给出结果
- Javascript Sqlite数据库选择具有多个参数的查询,其中任何参数都可以为null