我有一个简单的数据集,一些集合,不超过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比较 它确实看起来很糟糕?)
答案 0 :(得分:0)
我删除并重新创建了数据库。也许是因为从1.8到2.0。无论如何,HDD导致闪烁停止,现在一切都快了2-3倍。
我还仔细查看了用于测试Mongoid的测试,这个结果(0.001s)仅适用于一个find(),而不是一百万。我告诉Mongoid的作者,我认为在网站上没有明确说明操作数量仅适用于其中一些。
很抱歉这个混乱。