如何查看哪些查询正在使用 MongoDB 中的索引?

Man*_*uel 6 indexing mongodb

我看到 MongoDB 正在使用索引,但我不确定哪些查询正在使用它。

如何查看哪些查询正在使用索引?

编辑:为了澄清,我想查看哪些查询使用了索引,而不是相反地使用explain来查看特定查询使用了哪些索引。

Rav*_*rti 2

您可以使用.explain()运行查询来找出该特定查询中正在使用哪个索引。

\n\n

例如。与.find()你可以使用.explain()可以这样

\n\n
db.collection.find().explain()\n
Run Code Online (Sandbox Code Playgroud)\n\n

欲了解更多信息,请阅读MongoDB 解释

\n\n

编辑:检查日志中使用的索引

\n\n

要检查特定查询中使用了哪些索引,您可以在 mongodb 配置中启用索引级别日志。

\n\n

来自官方文档

\n\n
\n

指数

\n\n

与索引操作相关的消息,例如创建索引。若要指定 INDEX 组件的日志级别,请设置 systemLog.component.index.verbosity 参数。

\n
\n\n

启用systemLog.component.index.verbosity参数以启用索引日志。

\n\n

来自文档:

\n\n
\n

systemLog.component.index.verbosity 类型:整数

\n\n

默认值:0

\n\n

3.0版本中的新功能。

\n\n

与索引操作相关的组件的日志消息详细级别。\n 请参阅 INDEX 组件。

\n\n

详细级别的范围为 0 到 5:

\n\n

0 是 MongoDB\xe2\x80\x99s 默认日志详细级别,以包含\n 信息性消息。1 到 5 增加详细级别以包含调试消息。

\n
\n\n

阅读MongoDB 配置选项 - 索引详细信息以获取更多信息。

\n