1. 在查询条件、排序条件、统计条件的字段上选择创建索引,可以显著提高查询效率。2. 用$or时把匹配最多结果的条件放在最前面,用$and时把匹配最 少 结果的条件放在最前面。3. 使用limit()限定返回结果集的大小,减少数据库服务器的资源消耗,以及网络传输的数据量。4. 尽量少用$in,而是分解成一个一个的单一查询。尤其是在分片上,$in会让你的查询去每一个分片上查一次,如果实在要用的话,先在每个分片上建索引。5. 尽量不用模糊匹配查询,用其它精确匹配查询代替,比如$in、$nin。6. 查询量大、并发大的情况,通过前端加缓存解决。7. 能不用安全模式的操作就不用安全模式,这样客户端没必要等待数据库返回查询结果以及处理异常,快了一个数量级。8. MongoDB的智能查询优化,判断粒度为query条件,而skip和limit都不在其判断之中,当分页查询最后几页时,先用order反向排序。9. 尽量减少跨分片查询,balance均衡次数少。10. 只查询要使用的字段,而不查询所有字段。11. 更新字段的值时,使用$inc比update效率高。12. apped collections比普通collections的读写效率高。13. server-side processing类似于SQL查询的存储过程,可以减少网络通讯的开销。14. 必要时使用hint()强制使用某个索引查询。15. 如果有自己的主键列,则使用自己的主键列作为id,这样可以节约空间,也不需要创建额外的所以。16. 使用explain,根据exlpain plan进行优化。17. 范围查询的时候尽量用$in、$nin代替。18. 查看数据库查询日志,具体分析的效率低的操作。19. mongodb有一个数据库优化工具database profiler,能够检测数据库操作的性能。可以发现query或者write操作中执行效率低的,从而针对这些操作进行优化。20. 尽量把更多的操作放在客户端,当然这就是mongodb设计的理念之一。

MongoDB 查询优化原则相关推荐

  1. mongodb查询优化

    1.监控 mongodb可以通过profile来监控数据,进行优化. 查看当前是否开启profile功能用命令:db.getProfilingLevel()返回level等级,值为0|1|2,分别代表 ...

  2. educoder MongoDB 实验——数据库优化

    第1关:MongoDB 查询优化原则 1.CD 2.AD 3.AC 4.ABD 5.BCD 6.ABCD 7.CD 8.AD 第二关: mongo mydbdb.setProfilingLevel(1 ...

  3. MongoDB 实验——数据备份和恢复和数据库优化

    第1关:数据备份 本关任务:按照编程要求备份数据库. 第2关:数据恢复 本关任务:按照编程要求恢复数据. MongoDB 实验--数据库优化 第1关:MongoDB 查询优化原则 第1题 CD 第2题 ...

  4. 云上MongoDB常见索引问题及最优索引规则大全

    本文干货较多,建议收藏学习.先将文章结构速览奉上: 一.背景 二.MongoDB执行计划 2.1 queryPlanner信息 2.2 executionStats信息 2.3 allPlansExe ...

  5. MongoDB 计划缓存的影响

    MongoDB 计划缓存的影响 MongoDB 2.6 复制集Primary创建索引后,发现Secondary的查询没有走最新的索引. 临时清理掉该集合的计划缓存后正常.笔者观察到出现性能问题时,语句 ...

  6. mongodb 结果二次调用_mongodb慢查询记录

    在 MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDatabase Profiler.不仅有,而且还有一些比MySQL的 ...

  7. MongoDB 索引

    2019独角兽企业重金招聘Python工程师标准>>> 索引Indexes 索引常常用来大幅度的提升查询的性能. 考虑应用程序的查询种类是非常重要的事情,因此你就要定义相关的索引. ...

  8. 面试专题(Mysql及Mongodb)

    2019独角兽企业重金招聘Python工程师标准>>> mysql面试题 1.  各个数据库存储引擎区别 mysql的存储引擎是针对表进行设置的,一个库的不同表可以设置不同的存储引擎 ...

  9. mongodb 索引详解

    使用springboot连接mongodb的时候,涉及到索引的使用 举例: @Document(collection="book") //注释的是复合索引 //@CompoundI ...

最新文章

  1. FZOJ 2014年11月份月赛 ytaaa(dp + RMQ)
  2. 聊聊 computed 影响性能的场景
  3. 安卓清理垃圾清理代码_用方面清理代码
  4. 在控制台输出九九乘法表
  5. java字符串匹配dp_[OI]字符串DP小结
  6. 【Flink】Flink Flink 1.14 新特性预览
  7. 拼多多否认损失 200 亿;董明珠回应再拼三年;特斯拉称“未来艰难” | 极客头条...
  8. Android布局之屏幕自适应
  9. 河南大学软件学院宿舍楼综合布线设计方案
  10. 读《About Face 4 交互设计精髓》1
  11. SPSS常用的几种统计分析
  12. 关于小波分解的滤波器理解
  13. 2019 google开发者大会 | tensorflow相关视频
  14. JAVA基于JSP的在线人才招聘求职系统【数据库设计、论文、源码、开题报告】
  15. SQL 练习题标准答案(点个赞呀)
  16. MyBatis一发入魂(一)
  17. Windows的SSH密钥获取
  18. 如何批量修改多个文件的后缀名?
  19. 如何把微信公众号中的图文复制出来
  20. spark-调优(代码层面)

热门文章

  1. 河北云服务器价格,石家庄云服务器
  2. 智能车竞赛技术报告 | 节能信标组 - 浙江大学 - 浙大三队
  3. CPU知识(CPU个数、CPU核心数、CPU线程数、多核CPU等)
  4. 前端跨域方案看这篇就够了
  5. Robomaster基于传统算法的视觉识别教程
  6. LeetCode174. 地下城游戏
  7. 《写作脑科学:如何用脑科学改善写作能力》
  8. 2021SC@SDUSC-Zxing(十二):二维码的解析(Decode)及纠错有关算法介绍
  9. VUE适配大小屏幕,超大屏幕方案
  10. 滴滴OCE限时邀请有礼