我已经使用MongoDB配置了分片群集。 我想比较分片群集和单个数据库之间的查询执行时间(无分片)。 对于单个数据库,我使用system.profiler来获取每个查询的执行时间。 但对于分片集群系统.profiler是不可用的。我在网上搜索但我找不到如何通过分片群集获得查询的总执行时间。 请帮忙!!
答案 0 :(得分:0)
您可以简单地使用mongo的explain()方法。例如:
对于单个数据库:
db.users.find({username: "joynalabedin"}).explain().millis
这将以毫秒为单位返回查询执行时间。
对于分片群集:
db.visitors.find({"siteId" : "511ffa78-9a1d-4c33-a3aa-4b4417ca4afc"}).explain('executionStats')
在返回的输出中,executionStats中有三个属性:
executionTimeMillis - 查询执行时间
totalKeysExamined - 扫描的索引条目总数
totalDocsExamined - 扫描以查找的文档总数 结果
Adtional resources:
https://docs.mongodb.com/manual/reference/explain-results/#sharded-collection