【发布时间】:2013-12-21 02:57:56
【问题描述】:
我有这两个 mongo 命令,在我看来应该会导致相同的结果:
for(var i=0;i<1000;i++){db.test.insert({a:1}); db.getLastError({j:1, w:1});};
for(var i=0;i<1000;i++){db.test.insert({a:1}); db.runCommand({getLastError:1, j:1, w:1});};
两个命令都正确执行插入,但是,第二个命令慢 100 倍(500 毫秒对 45 秒)。有谁知道,为什么会这样?仅当设置 {j:1} 时才存在差异,因此它可能与某些日志问题有关?
【问题讨论】:
-
只是好奇 - 当 fsync 设置为 true 时会发生什么?是否启用了日记功能?
-
fsync 不会改变任何东西(至少对我而言)。我有 2.4.8 版本的 MongoDB,我没有更改日志的默认选项,所以应该启用它。
标签: performance mongodb getlasterror runcommand