MongoDB读取性能差

时间:2011-10-21 11:29:27

标签: mongodb performance database

我有一个简单的数据集,一些集合,不超过20个 MongoDB 2.0中的每个文档(以前为1.8)。我变穷了 在查询数据时的结果(至少我认为它们可能是 好好看http://mongoid.org/performance.html)。首先, 我虽然我在Ruby(Mongoid)中使用的映射器是问题,但是 我做了一些更多的测试,它似乎与数据库更相关 本身。

我做了一个简单的基准测试,我查询同一个文档10000 根据其ID,首先使用Ruby Mongo驱动程序,然后使用Mongoid。该 结果:

              user     system      total        real
driver    7.670000   0.380000   8.050000 (  8.770334)
mongoid   9.180000   0.380000   9.560000 ( 10.384077)

代码在这里:https://gist.github.com/1303536 我正在测试它的机器是Core 2 Duo P8400 2.27 GHz,带有4 GB的RAM运行Ubuntu 11.04。 我还使用pymongo进行了类似的测试来检查问题是否存在 在Ruby驱动程序中,结果只是略微好一点(5-6秒) 10000个请求)。

我拿到的文件的bsonsize是67.它有一些小的 嵌入式文件,但不超过100个。嵌入式文件 文件通过ID引用其他馆藏的文件,但是AFAIR 关系由mapper处理,所以它不应该影响 性能。使用explain()直接在数据库中获取此文档会导致millis = 0。

奇怪的是,HDD LED一直闪烁 测试。 Mongo之后不应该将此文档缓存在RAM中 先读?有什么明显的东西可能会丢失吗?或者是这个 根本不是一个糟糕的结果(但与http://mongoid.org/performance.html比较 它确实看起来很糟糕?)

1 个答案:

答案 0 :(得分:0)

我删除并重新创建了数据库。也许是因为从1.8到2.0。无论如何,HDD导致闪烁停止,现在一切都快了2-3倍。

我还仔细查看了用于测试Mongoid的测试,这个结果(0.001s)仅适用于一个find(),而不是一百万。我告诉Mongoid的作者,我认为在网站上没有明确说明操作数量仅适用于其中一些。

很抱歉这个混乱。