MongoDB——索引
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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——索引的主要内容,如果未能解决你的问题,请参考以下文章