- 122
- 0
- mongodb集群复制集分片部署环境中. 中有一个collection device, device有2个索引a,b
- 有一条查询, 两种写法
// 耗时很稳定1ms. 根据索引a查询b字段的内容(b也是索引,返回结果为1条,内容在45字符左右)
db.getCollection('device').find({'a':'value'},{'b':1});
// 不稳2~2000ms都有可能, 根据索引a查询整个文档(返回结果为1条,内容在600字符左右)
db.getCollection('device').find({'a':'value'});
问题1: 求科普下整个查询的流程?
问题2: 同样走索引,返回文档也都是一条,只有返回内容大小有一些差异,但结果却天差地别.这其中的原理又是什么?
问题补充:
@Mongoing中文社区 大神,非常感谢你的回答. 本次提问其实是 mongodb走了索引,依旧是慢查询,请看执行计划 问题的续集(你在这个问题里也有回答. 叩谢).
上个问题的解决方式是将第2个查询语句改成第1个查询语句的方式,在我项目里面的到很好的效果.
所以非常想知道这两个查询直接的联系与不同点,以及整个查询的流程.
另外,能不能推荐几本好的mongodb的书(中文版的最好.英文不太好).羡慕你很专业,感觉有知识真的好酷.
1
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

