欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MongoDB中的索引简单介绍!

程序员文章站 2022-04-12 23:40:12
MongoDB 索引一、什么是索引?有什么作用?“索引”是几乎所有数据库都有的概念。数据库的“索引”,可以看作是书籍的“目录”!db..ensure({"username":1})//在username上建立索引没有索引时,如果我们要在整个集合中查找符合条件的文档,就只能一个文档一个文档地去扫描(即“全表扫描”)。当集合非常大时,这总全表扫描的方式就会变得十分低效。而有了索引之后,我们就不需要再使用全表扫描这种低效的方式来查询文档!而是如同翻书先查目录一样,先...

MongoDB 索引

一、什么是索引?有什么作用?

“索引”是几乎所有数据库都有的概念。
数据库的“索引”,可以看作是书籍的“目录”!

db.<collection>.ensure({"username":1})//在username上建立索引

没有索引时,如果我们要在整个集合中查找符合条件的文档,就只能一个文档一个文档地去扫描(即“全表扫描”)。当集合非常大时,这总全表扫描的方式就会变得十分低效。
而有了索引之后,我们就不需要再使用全表扫描这种低效的方式来查询文档!而是如同翻书先查目录一样,先查索引再根据索引去查找文档!
关于索引需要注意的是:

  1. 合理地使用索引可以大大增加我们查询数据库的效率,但是使用索引是有代价的。对于索引,每次执行“写”操作时,都需要更新索引,这会耗费一定的性能。
  2. 每个集合上的索引不应该超过两个!
  3. 对于需要做频繁“写”操作的集合要谨慎使用索引!

二、哪些场景适合使用索引?

适合场景:

  1. 主要时读取操作,写操作较少。
  2. 集合较大、文档较大。集合较大、文档较大时,正确使用索引可以大幅度提升查找效率。
  3. 选择性查询。
  4. 索引基数较大。在索引基数(集合中某个字段拥有不同值的数量)较大得字段上建立索引,可以大幅提升效率。

三、索引分类有哪些?

  1. 最简单索引:最简单的索引,就是在某一个字段上建立索引。
  2. 复合索引:在多个字段上建立的索引。
  3. 索引对象、索引数组:在文档中的一个数组元素或者一个对象属性上建立的索引。
  4. 唯一索引:可以确保每个文档的指定键都有唯一值的索引。
  5. 稀疏索引:只对包含相应键起作用的唯一索引。稀疏索引不会认为两个指定键都为null的文档重复。
  6. 其他简单索引:如复合唯一索引、覆盖索引。
  7. 特殊索引:固定集合、TTL索引、全文本索引等,我会单独写一篇博文介绍。

本文地址:https://blog.csdn.net/qq_43222869/article/details/107662786