2019独角兽企业重金招聘Python工程师标准>>>

mongodb索引分类以及创建我就不多说了,如果想了解可以直接在百度上搜索,这里我说一下关于索引创建的个人想法。

1、优先给一些Id类字段添加索引,查询时可以缩小扫描范围。

2、创建联合索引时,索引字段顺序很重要,如果第一个字段和索引不匹配,则基本不会命中该索引。

3、有些索引创建后,特别是嵌套查询,比如说{ "audit.experts" : { "$elemMatch" : { "expertId" : "37add534bc554a8e80e8700ae19e55f6", "result" : { "$in" : ["success", "fail"] } } } },这个查询不添加索引需要5s ,添加索引{"audit.experts.expertId":1,"audit.experts.result":1}后无法命中索引,这时就需要强制使用索引,mongodb提供了hint来强制使用某一个索引。

4、在优化过程中,我还发现有一些查询(集合中的数据都是嵌套的),使用了索引(联合索引)反而比不是用索引更慢。

5、使用模糊查询的字段尽量不要添加到联合索引中,对查询效率影响比较小。

转载于:https://my.oschina.net/u/560547/blog/854251

关于Mongodb索引创建的一些体会相关推荐

  1. mongodb索引生成HTML页面,mongodb高阶:索引创建、聚合查询、复制集、分片、创建备份和部署...

    先前我们讨论了mongodb的进阶查询:投影查询.分页查询以及对查询结果进行排序,从本节起我们开始学习mongodb相关的高级技术,首先我们会讨论mongodb如何创建索引,索引是数据库中最重要的东西 ...

  2. mongodb索引--从55.7秒到毫秒级别

    从头开始,验证mongodb的索引的好处.(window7环境下) 下载mongodb服务器,并解压到d盘,并使用以下命令启动 mongod --dbpath D:\mongodb\data mong ...

  3. MongoDB 索引

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

  4. MongoDB · 引擎特性 · MongoDB索引原理

    MongoDB · 引擎特性 · MongoDB索引原理 数据库内核月报 原文链接 http://mysql.taobao.org/monthly/2018/09/06/ 为什么需要索引? 当你抱怨M ...

  5. mongodb索引--1亿条记录的查询从55.7秒到毫秒级别补充版

    从头开始,验证mongodb的索引的好处.(window7环境下) 下载mongodb服务器,并解压到d盘,并使用以下命令启动 mongod --dbpath D:\mongodb\data mong ...

  6. MongoDB索引实战技巧

    为什么80%的码农都做不了架构师?>>>    本文内容源自Kyle Banker 的 MongoDB In Action一书.主要描述了MongoDB索引相关的一些基础知识和使用技 ...

  7. MongoDB 索引-9

    MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大 ...

  8. MongoDB索引原理和具体使用

    1. MongoDB 索引是用来干嘛? 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常 ...

  9. MongoDB索引策略和索引类型

    1. MongoDB索引策略和索引类型–简介 MongoDB是一个开放源代码,面向文档的跨平台数据库,它使用C ++开发,并且是最流行和使用最广泛的NoSQL类型数据库之一. 它可在具有键-值对的类J ...

最新文章

  1. modules黑名单
  2. 极客新闻——18、领导和下属之间到底是什么样的关系?
  3. 【深度学习】高效读取数据的方法(TFRecord)
  4. leetcode算法题--摆动序列★
  5. Win64 驱动内核编程-26.强制结束进程
  6. java151和152_编写高质量代码:改善Java的151个建议(性能和效率)132-133
  7. uygurqa输入法android,uygurqa维语输入法2021
  8. 【CZY选讲·逆序对】
  9. Vue实现拖拽拼图滑块验证
  10. 第39级台阶回溯算法c语言,回溯39级台阶
  11. 软考数据库考试有题库吗_网络工程师真的像大家说的那么容易考吗?
  12. Blender-绑定动画Auto-Rig Pro 重映射动捕FBX 小K结合 的问题以及解决
  13. minio实现大文件分片上传+断点续传+预览
  14. 对于大型公司项目平台选择j2ee的几层认识(一)
  15. vue.runtime.esm.js:620 [Vue warn]: Error in nextTick: “TypeError: Cannot convert object to primitive
  16. python爬虫笔记(学习T)
  17. 从零开始社区之路,手把手教你开源自己的Python包
  18. Download files
  19. java课程设计总结迷宫_java课设走迷宫(含代码)#优质参考
  20. 开发工具-Atom下载及安装

热门文章

  1. 去Tech Ed得计划好
  2. 百度之星第一题竟然没过
  3. 安装oracle到create inventory时卡住了怎么办_「推荐」wacom数位板怎么用?教你如何正确的安装数位板驱动...
  4. 一个Python小白5个小时爬虫经历
  5. c 自定义实现string类 clear_基于scala2.13实现自定义的集合类 (下)
  6. c语言指针用法及实际应用详解,通俗易懂超详细!
  7. 关于数据表中插入数据报错(pymysql.err.IntegrityError) (1062, “Duplicate entry ‘0112‘ for key ‘‘teacher.PRIMARY‘“)
  8. HDU1443(约瑟夫环问题)
  9. HDU1217(Bellman-ford和Floyd两种算法)
  10. 单调栈 or 线段树扫描线 ---- E. Delete a Segment [单调栈+二分] [扫描线处理空白位置的技巧乘2]