【发布时间】:2014-07-01 21:22:28
【问题描述】:
我刚从版本 1.4 升级到 2.1.1 并注意到改进,但插入速度仍然非常慢,随着更多文档的插入而变慢。
我正在从旧数据库迁移到新数据库,一次插入 1000 个。以下是一些日志供您阅读:
========= [26.28s]
BATCH #1 [0s]
========= [0s]
CREATED: 1000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 1000 [0s]
BATCH TIME: 26.279s [0s]
TOTAL BATCH TIME: 26.279s [0s]
AVG TIME PER BATCH: 26.279s [0s]
TOTAL TIME: 29.277s [0s]
========= [29.919s]
BATCH #2 [0.001s]
========= [0s]
CREATED: 2000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 2000 [0s]
BATCH TIME: 29.919s [0s]
TOTAL BATCH TIME: 56.198s [0s]
AVG TIME PER BATCH: 28.099s [0s]
TOTAL TIME: 61.341s [0s]
========= [33.698s]
BATCH #3 [0s]
========= [0s]
CREATED: 3000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 3000 [0s]
BATCH TIME: 33.697s [0s]
TOTAL BATCH TIME: 89.89500000000001s [0s]
AVG TIME PER BATCH: 29.965000000000003s [0s]
TOTAL TIME: 97.755s [0s]
========= [62.653s]
BATCH #10 [0s]
========= [0s]
CREATED: 10000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 10000 [0s]
BATCH TIME: 62.653s [0s]
TOTAL BATCH TIME: 438.422s [0s]
AVG TIME PER BATCH: 43.842200000000005s [0s]
TOTAL TIME: 474.096s [0s]
我正在使用ArangoDB NodeJS API 并运行以下代码(每批 1000 次):
db.document.create("users", user)
我在这里遗漏了什么,或者 ArangoDB 对任何具有 >1000 条记录的数据库来说都是一个失败的原因?
【问题讨论】:
-
要确定问题出在哪里(数据库服务器、node.js 驱动程序、连接),您能否尝试运行以下命令并在此处发布结果?
arangob --test-case document --requests 1000 --concurrency 1 --server.endpoint tcp://127.0.0.1:8529 -
您是否还可以检查您要插入的集合是否将其
waitForSync选项设置为true?如果是这样,那么每次插入都会触发全盘同步操作并等待操作系统确认同步完成。这可能非常慢,具体取决于您使用的磁盘类型。如果集合或单个保存操作的waitForSync设置为true,您可以尝试将其关闭并重试插入吗?
标签: node.js performance insert arangodb