九、MongoDB中explain()

来源:互联网 发布:马来西亚域名 编辑:程序博客网 时间:2024/05/01 08:23
explain()是显示查询信息用的,一般如果查询速度很慢这个就是最好的查询工具了。
具体字段解释:
cursor:表示本次查询使用的索引,而且可以显示是否逆序,是否多键索引(逆序和多键索引通过reverse和multi显示)
isMultikey:是否为多键索引
n:表示查询返回文档的个数
nscannedObjects:表示索引去磁盘查找实际文档的次数。
nscanned:如果有使用索引,这个字段就是查询过索引的数量
scanAndOrder:MongoDB是否在内存中对结果集进行排序
indexOnly:mongoDB是否只是用索引就能完成这次查询,具体可以了解一下覆盖索引,就是说如果我返回的值是跟索引字段一样的,那就是true,如果不是就是false,比如我用了username和age索引,我如果查询只查询username,age那就是true,否则false
nYields:为了让写入请求能顺利进行,本次查询暂停的次数。如果有写入请求,查询会周期性的释放锁,让写入顺利进行。
millis:本次查询所用的毫秒数
indexBounds:描述索引的使用情况,给出索引的遍历范围
如果发现索引使用情况跟自己想要的不一样,可以强制使用索引,在查询后面加.hint({"username":1,"age":1})
原创粉丝点击