目录

  • 一、索引介绍
  • 二、MongoDB索引数据结构
    • 2.1、MongoDB索引数据结构是B-Tree还是B+Tree?
    • 2.2、MongoDB索引数据结构
  • 三、MongoDB索引的分类

一、索引介绍

  • 索引是一种用来快速查询数据的数据结构。
  • B+Tree就是一种常用的数据库索引数据结构,MongoDB采用B+Tree 做索引,索引创建在colletions上。
  • MongoDB不使用索引的查询,先扫描所有的文档,再匹配符合条件的文档。 使用索引的查询,通过索引找到文档,使用索引能够极大的提升查询效率。

二、MongoDB索引数据结构

2.1、MongoDB索引数据结构是B-Tree还是B+Tree?

  • B-Tree说法来源于官方文档,然后就导致了分歧:有人说MongoDB索引数据结构使用的是B-Tree,有的人又说是B+Tree。

  • MongoDB官方文档:https://www.mongodb.com/docs/manual/indexes/

  • WiredTiger官方文档:https://source.wiredtiger.com/3.0.0/tune_page_size_and_comp.html

  • 注意:MongoDB具体使用的是B+Tree,因为B+Tree是B-Tree的子集,所以叫B-Tree也对,但容易产生误导。

2.2、MongoDB索引数据结构

  • MongoDB索引数据结构如下图:

三、MongoDB索引的分类

  • 按照索引包含的字段数量,可以分为单键索引和组合索引(或复合索引)。
  • 按照索引字段的类型,可以分为主键索引和非主键索引。
  • 按照索引节点与物理记录的对应方式来分,可以分为聚簇索引和非聚簇索引,其中聚簇索引是指索引节点上直接包含了数据记录,而后者则仅仅包含一个指向数据记录的指针。
  • 按照索引的特性不同,又可以分为唯一索引、稀疏索引、文本索引、地理空间索引等。
  • 与大多数数据库一样,MongoDB支持各种丰富的索引类型,包括单键索引、复合索引,唯一索引等一些常用的结构。由于采用了灵活可变的文档类型,因此它也同样支持对嵌套字段、数组进行索引。通过建立合适的索引,我们可以极大地提升数据的检索速度。在一些特殊应用场景,MongoDB还支持地理空间索引、文本检索索引、TTL索引等不同的特性。

MongoDB——索引相关推荐

  1. 关于Mongodb索引创建的一些体会

    2019独角兽企业重金招聘Python工程师标准>>> mongodb索引分类以及创建我就不多说了,如果想了解可以直接在百度上搜索,这里我说一下关于索引创建的个人想法. 1.优先给一 ...

  2. MongoDB 索引

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

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

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

  4. MongoDB索引实战技巧

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

  5. mongodb 索引建立问题

    mongodb  索引建立问题 1.主从库索引建立不是同步建立: MONGODB 2.6.6 版本,索引建立并不是同步的,而是主库建立完成后,从库接着建立索引.     不知是3.0版本是否也一样,以 ...

  6. MongoDB 索引-9

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

  7. mongodb 索引建立问题

    mongodb  索引建立问题 1.主从库索引建立不是同步建立: MONGODB 2.6.6 版本,索引建立并不是同步的,而是主库建立完成后,从库接着建立索引.     不知是3.0版本是否也一样,以 ...

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

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

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

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

  10. MongoDB索引,性能分析

    索引的限制: 索引名称不能超过128个字符 每个集合不能超过64个索引 复合索引不能超过31列 MongoDB 索引语法 db.collection.createIndex({ <field&g ...

最新文章

  1. AI芯片爆火 但初创公司场景落地难
  2. 可溶于水的机器人见过吗?明胶和糖3D打印而成,现登Science子刊封面
  3. Struts 2常用的Ajax标签
  4. 一天就能上线音乐教学APP?网易云信首推音乐教学解决方案!
  5. jenkins2 groovy语法
  6. HTML5原生拖拽/拖放(drag drop)详解
  7. JSX详解React的事件绑定事件参数的传递
  8. Substitute Algorithm(替换算法)
  9. Spark中导入scalax
  10. 在高并发环境下该如何构建应用级缓存
  11. eclipse安装M2Eclipse插件
  12. android 找不到密钥,InvalidKeyException:在Android设备上进行RSA解密时密钥库操作失败...
  13. Encrypt java_ESAPI对称加密使用JavaEncryptor
  14. web服务器 怎样上传文件,文件上传web服务器
  15. java ajax传参问题
  16. 在 Python 中使用计算机视觉实现哈利波特的隐形斗篷
  17. 用友U8采购订单查询
  18. 两宋词人Top10排排座
  19. 如何去掉“Picked up JAVA_TOOL_OPTIONS: -Djava.vendor=“Sun Microsystems Inc.“” 提示
  20. 从零开始学习3D可视化之摄像机

热门文章

  1. 多行文字垂直居中的方法
  2. css 让图片不停的转动
  3. 这些代表了未来出行的交通工具,你注意到了吗?
  4. CocosCreater js与原生通信
  5. QPM 之悬浮窗设置信息
  6. 驰为 hi12 linux,驰为Hi12双系统新品重磅豪礼 4月15日见
  7. Wireguard各主流平台的配置教程
  8. oracle修改字段详解,详解Oracle修改字段类型方法总结
  9. 最新彩虹云商城发卡系统源码6.9.0免授权版本+功能强大
  10. python批量下载马拉松图片