MongoDB:查询次数

时间:2012-08-11 14:49:22

标签: mongodb

最近,我意识到我提出了很多疑问。 (我认为)

编辑:

我想知道我是否可以分析如何构建我的应用程序。 使用top linux? 或者只是在浏览器中加载网站。并使用firebug例如查看查询是否很长。 没有服务器端技巧? 因为我有一个页面,谁加载8个查询。我觉得这很多。不是吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

与任何数据库一样,它不一定是您应该关注的查询总数,而是查询性能和每个数据返回的数据效率。根据您的应用程序设计,数据模型和索引,八个查询可能是每页的预期数量。无论查询数量多少,您都希望确保常见的快速

您可以尝试在MongoDB中尝试理解查询的几个关键位置。

易于使用的粗略顺序:

1)对查询使用 explain() 功能,以获取有关查询计划和索引使用的更多信息。

这应该是了解您的常见查询是否需要或有效使用索引的起点。

2)您可以为MongoDB数据库启用 Database Profiler

捕获的分析信息类似于explain()输出,包括所有读/写查询。如果您只想查看慢查询而不是全部查询,则可以设置适当的分析级别。 “慢速查询”的默认值为100毫秒,但您可以根据需要进行设置。

为MongoDB shell中的所有查询启用分析“

$ mongo mydb
MongoDB shell version: 2.2.0-rc0
connecting to: mydb

> db.setProfilingLevel(2);
{ "was" : 0, "slowms" : 100, "ok" : 1 }

> db.getProfilingLevel()
2

文档详细介绍了viewing the profile data

3)您还可以尝试查看应用程序/ driver生成的查询,然后再将其发送到MongoDB。

这样做的说明(或可能性)会因您使用的驱动程序而异(请查看驱动程序文档!)。

4)其他分析工具

有几个实用程序应用程序将分析您的分析数据并帮助索引建议:

答案 1 :(得分:0)

您可以查看MongoDB日志以查找慢查询:http://www.mongodb.org/display/DOCS/Logging

至于查询量 - 让你的思绪远离这个SQL as-few-queries-as-possible Mind set。扔掉MongoDB的规则手册。例如,每次迭代游标时,它再次运行查询,因为它从数据库流出,因此您认为您正在运行8个查询,但事实上可能已经运行了10秒。 Mongo的结果集与SQL不同,查询它们不应该被视为相同。


我意识到当我回答这个问题时,我实际上粘贴了日志链接而不是分析链接,但是@Stennie粘贴了正确的链接,所以它没问题。