Mongodb 如何验证mongo索引是否正常工作?
我在Mongo2.6dB中收集了一小部分MP3。此“歌曲”集合中的文档可能如下所示:Mongodb 如何验证mongo索引是否正常工作?,mongodb,indexing,Mongodb,Indexing,我在Mongo2.6dB中收集了一小部分MP3。此“歌曲”集合中的文档可能如下所示: {u id:…,名称:“shagCarpet.mp3”,标签:[“acapella”,“rap”]} 我预计这个收藏在不久的将来会快速增长,所以我想为这个收藏编制索引,以便于搜索。我在“标记”字段上创建了一个多键索引,如下所示: db.songs.createIndex({“标记”:1}) 由于集合当前很小,我看不到通过添加索引来提高性能。如何验证索引是否正常工作?我可以看一下索引中的数据吗?我知道db.son
{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
,这意味着检查的地方没有不必要的文档,索引完全覆盖了查询
这里还有一篇好文章
不完全确定您要查找的内容,但重要的是运行查询并确认索引在您期望的时候正在使用。顺便说一句,这是一个多键索引,不是一个复合索引。如果你希望集合快速增长,你需要记住,索引将减慢写入速度,加快读取速度。最好等到有了更多的信息再创建索引。