查询分片群集的执行时间

时间:2016-08-24 14:22:11

标签: mongodb performance sharding database

我已经使用MongoDB配置了分片群集。 我想比较分片群集和单个数据库之间的查询执行时间(无分片)。 对于单个数据库,我使用system.profiler来获取每个查询的执行时间。 但对于分片集群系统.profiler是不可用的。我在网上搜索但我找不到如何通过分片群集获得查询的总执行时间。 请帮忙!!

1 个答案:

答案 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