索引优缺点
- 优点
提高数据查询的效率,降低数据库的IO成本
通过索引对数据进行排序,降低数据排序的成本,降低CPU的消耗
- 缺点
占用磁盘空间
大量索引影响SQL语句效率,因为每次插入和修改数据都需要更新索引
查看索引
db.c1.getIndexes()
创建普通索引
db.c1.createIndex({name:1})
给索引起别名
db.c1.createIndex({name:1}, {name: "an"})
创建复合索引
db.c1.createIndex({name:1,age:1})
创建唯一索引
db.c1.createIndex({name:1},{unique:"name"})
//name唯一,不允许出现重复字段
删除索引
//全部删除:
db.c1.dropIndexes()
//删除指定:
db.c1.dropIndex('name_1')
分析索引
db.c1.find().explain('executionStats')
使用索引直观上是为了减少搜索时间,在索引创建以后,不要急着高兴,要分析一下,再考虑到底要不要建索引
一般上
我们为常做条件、排序、分组的字段建立索引
这是在网上找的一张对索引分析进行注解的图