MongoDB中的索引简单介绍!
程序员文章站
2022-07-06 13:38:02
MongoDB 索引一、什么是索引?有什么作用?“索引”是几乎所有数据库都有的概念。数据库的“索引”,可以看作是书籍的“目录”!db..ensure({"username":1})//在username上建立索引没有索引时,如果我们要在整个集合中查找符合条件的文档,就只能一个文档一个文档地去扫描(即“全表扫描”)。当集合非常大时,这总全表扫描的方式就会变得十分低效。而有了索引之后,我们就不需要再使用全表扫描这种低效的方式来查询文档!而是如同翻书先查目录一样,先...
MongoDB 索引
一、什么是索引?有什么作用?
“索引”是几乎所有数据库都有的概念。
数据库的“索引”,可以看作是书籍的“目录”!
db.<collection>.ensure({"username":1})//在username上建立索引
没有索引时,如果我们要在整个集合中查找符合条件的文档,就只能一个文档一个文档地去扫描(即“全表扫描”)。当集合非常大时,这总全表扫描的方式就会变得十分低效。
而有了索引之后,我们就不需要再使用全表扫描这种低效的方式来查询文档!而是如同翻书先查目录一样,先查索引再根据索引去查找文档!
关于索引需要注意的是:
- 合理地使用索引可以大大增加我们查询数据库的效率,但是使用索引是有代价的。对于索引,每次执行“写”操作时,都需要更新索引,这会耗费一定的性能。
- 每个集合上的索引不应该超过两个!
- 对于需要做频繁“写”操作的集合要谨慎使用索引!
二、哪些场景适合使用索引?
适合场景:
- 主要时读取操作,写操作较少。
- 集合较大、文档较大。集合较大、文档较大时,正确使用索引可以大幅度提升查找效率。
- 选择性查询。
- 索引基数较大。在索引基数(集合中某个字段拥有不同值的数量)较大得字段上建立索引,可以大幅提升效率。
三、索引分类有哪些?
- 最简单索引:最简单的索引,就是在某一个字段上建立索引。
- 复合索引:在多个字段上建立的索引。
- 索引对象、索引数组:在文档中的一个数组元素或者一个对象属性上建立的索引。
- 唯一索引:可以确保每个文档的指定键都有唯一值的索引。
- 稀疏索引:只对包含相应键起作用的唯一索引。稀疏索引不会认为两个指定键都为null的文档重复。
- 其他简单索引:如复合唯一索引、覆盖索引。
- 特殊索引:固定集合、TTL索引、全文本索引等,我会单独写一篇博文介绍。
本文地址:https://blog.csdn.net/qq_43222869/article/details/107662786
上一篇: mongodb的安装和开机自启动