在 MongoDB 上,<mark>索引能够提高读操作及查询性能</mark>。没有索引,MongoDB 必须扫描集合中的每一个文档,然后选择与查询条件匹配的文档,这种全表扫描的方式是非常低效的。MongoDB 索引的数据结构也是 B+树,它能存储一小部分集合的数据,具体来说就是存储集合中建有索引的一个或多个字段的值,而且按照值的升序或降序排列。对于一个查询说,<ins>如果存在合适的索引,MongoDB 能够利用这个索引减少文档的扫描数量</ins>。
* MongoDB默认为所有集合都创建了一个`_id`字段的单字段索引,而且这个索引是唯一的,不能被删除。
<br/>
MongoDB 3.0.0 版本之后,使用 `createIndex()` 方法来创建索引,在 3.0.0 版本前使用 `ensureIndex()`方法来创建索引,之后的版本`ensureIndex()` 还 能用 , 但只是`createIndex()` 的别名。
<br/>
语法:
```sql
db.collection.createIndex(keys, options)
Keys 将某个字段作为索引,1 为升序创建索引,-1为降序索引
options 可选项
```
```sql
> db.col.createIndex({"title":1})
# 复合索引
> db.col.createIndex({"title":1,"description":-1})
```
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注