Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何验证mongo索引是否正常工作?_Mongodb_Indexing - Fatal编程技术网

Mongodb 如何验证mongo索引是否正常工作?

Mongodb 如何验证mongo索引是否正常工作?,mongodb,indexing,Mongodb,Indexing,我在Mongo2.6dB中收集了一小部分MP3。此“歌曲”集合中的文档可能如下所示: {u id:…,名称:“shagCarpet.mp3”,标签:[“acapella”,“rap”]} 我预计这个收藏在不久的将来会快速增长,所以我想为这个收藏编制索引,以便于搜索。我在“标记”字段上创建了一个多键索引,如下所示: db.songs.createIndex({“标记”:1}) 由于集合当前很小,我看不到通过添加索引来提高性能。如何验证索引是否正常工作?我可以看一下索引中的数据吗?我知道db.son

我在Mongo2.6dB中收集了一小部分MP3。此“歌曲”集合中的文档可能如下所示:

{u id:…,名称:“shagCarpet.mp3”,标签:[“acapella”,“rap”]}

我预计这个收藏在不久的将来会快速增长,所以我想为这个收藏编制索引,以便于搜索。我在“标记”字段上创建了一个多键索引,如下所示:

db.songs.createIndex({“标记”:1})


由于集合当前很小,我看不到通过添加索引来提高性能。如何验证索引是否正常工作?我可以看一下索引中的数据吗?我知道
db.songs.getIndexes()
,但这只是重复了我创建索引时告诉Mongo的内容。我希望实际查看索引数据的外观。

确定索引是否正常工作的第一步是确定如何搜索数据库。找到最频繁和/或最昂贵的查询后,在shell中运行它们并附加
.explain()
调用。例如:

db.songs.find(...).explain();

这将转储大量信息,其中一部分将告诉您是否使用了索引,如果使用了索引,将按什么顺序使用索引。有关这一切意味着什么的详细信息,请参阅。

您将通过以下方式获得更多信息:

db.songs.find({“tags”:“accapella”).explain()使用

db.songs.find({“tags”:“accapella”).explain(“executionStats”)

如果
nReturned
等于
docsExamined
,这意味着检查的地方没有不必要的文档,索引完全覆盖了查询

这里还有一篇好文章

不完全确定您要查找的内容,但重要的是运行查询并确认索引在您期望的时候正在使用。顺便说一句,这是一个多键索引,不是一个复合索引。如果你希望集合快速增长,你需要记住,索引将减慢写入速度,加快读取速度。最好等到有了更多的信息再创建索引。