索引优缺点

  • 优点

提高数据查询的效率,降低数据库的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')

使用索引直观上是为了减少搜索时间,在索引创建以后,不要急着高兴,要分析一下,再考虑到底要不要建索引

一般上

我们为常做条件、排序、分组的字段建立索引

这是在网上找的一张对索引分析进行注解的图