MongoDB操作手册CRUD查询性能分析

php中文网
发布: 2016-06-07 16:06:13
原创
1108人浏览过

分析查询性能 explain() cursor方法允许观察查询系统执行的操作。这个方法对于分析高效查询和决定如何使用索引进行查询是十分有用的。这个方法检测的是查询的操作,而不是查询执行时间。因为这个方法尝试多个查询计划,它并不能准确的反映出查询执行时间。

分析查询性能

explain() cursor方法允许观察查询系统执行的操作。这个方法对于分析高效查询和决定如何使用索引进行查询是十分有用的。这个方法检测的是查询的操作,而不是查询执行时间。因为这个方法尝试多个查询计划,它并不能准确的反映出查询执行时间。

评估一个查询的性能

使用explain()方法,调用find()返回的指针的该方法即可。
例:
在type字段创建索引
db.testData.ensureIndex({'type':1});
评估一个在type字段上的查询。
db.testData.find({type:'food'}).explain()
结果如下:
{
"cursor" : "BtreeCursor type_1",
"isMultiKey" : false,
"n" : 3,
"nscannedObjects" : 3,
"nscanned" : 3,
"nscannedObjectsAllPlans" : 3,
"nscannedAllPlans" : 3,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 1,
"nChunkSkips" : 0,
"millis" : 64,
"indexBounds" : {
"type" : [
[
"food",
"food"
]
]
},
"server" : "TT:27017",
"filterSet" : false
}
cursor值为BtreeCursor表名查询使用了索引。
查询返回n=3条记录。
为了返回这五条记录,查询扫描了nscanned=3条记录,然后读到了nscannedObjects=3条完整的记录,如果没有索引,将扫描所有记录。

比较索引查询性能

手动比较一个使用多个字段的查询,可以联合使用hint()和explain()方法。
例:评估使用不同字段的索引
db.testData.find({type:'food'}).hint({type:1}).explain();
结果:
{
"cursor" : "BtreeCursor type_1",
"isMultiKey" : false,
"n" : 3,
"nscannedObjects" : 3,
"nscanned" : 3,
"nscannedObjectsAllPlans" : 3,
"nscannedAllPlans" : 3,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 40,
"indexBounds" : {
"type" : [
[
"food",
"food"
]
]
},
"server" : "TT:27017",
"filterSet" : false
}
db.testData.find( { type: 'food' } ).hint( { type: 1, name: 1 } ).explain();
//这句话执行不成功,待解决
这些返回的统计结果忽略了使用各自的索引的执行的查询。
注意:如果不适用hint()执行explain()方法,查询优化器将重新评估查询,并且在返回查询统计之前运行多索引查询。
更详细的explain输出,查看explain-results。
相关标签:
数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号