MongoDB索引管理-索引的创建、查看、删除等操作

发布时间:2017-11-26 编辑:小张个人博客 查看次数:6830

MongoDB索引类型 MongoDB支持多种类型的索引,包括单字段索引复合索引多key索引文本索引等,每种类型的索引有不同的使用场合。

MongoDB索引属性选项配置说明:

MongoDB索引属性选项配置

Mongodb-索引


1、索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建索引

2、在mongodb中,索引可以按字段升序/降序来创建,便于排序

3、默认是用btree来组织索引文件,2.4版本以后,也允许建立hash索引.

创建索引

db.goods.createIndex({cat_id:1})

Mongodb-创建索引

查看查询计划

db.goods.find({cat_id:23}).explain();

查询索引

db.goods.getIndexes();

mongodb查询索引(getIndexes)

查看总索引记录大小

db.goods.totalIndexSize();

读取当前集合的所有index信息

db.goods.reIndex();

删除指定索引

db.goods.dropIndex({goods_name:1});

mognodb删除指定索引(dropIndex)

删除所有索引

db.goods.dropIndexes();

创建稀疏索引

稀疏索引的特点:如果针对field做索引,针对不含field列的文档,将不建立索引.

与之相对,普通索引,会把该文档的field列的值认为NULL,并建索引.

适宜于: 小部分文档含有某列时.

db.goods.createIndex({goods_id:1},{sparse:true});

创建唯一索引


1、唯一索引可以拒绝保存那些被索引键的值已经重复的文档。

2、唯一性的限制是针对一个集合中不同文档的。也即,唯一索引可以防止 不同 文档的被索引键上存储相同值,但是它不禁止同一篇文档在被索引键存储的数组里存储的元素或者内嵌文档是相同的值。

db.goods.createIndex({goods_id:1},{unique:true});

创建复合索引

在多个键上建立的索引就是复合索引

db.goods.createIndex({cat_id:1,goods_id:1})

创建哈希索引(2.4新增)

哈希索引速度比普通索引快,但是,无法对范围查询进行优化.

适宜于:随机性强的散列

db.goods.createIndex({cat_id:'hashed'});

重建索引


一个表经过很多次修改后,导致表的文件产生空洞,索引文件也如此.

可以通过索引的重建,减少索引文件碎片,并提高索引的效率.

类似mysql中的optimize table

db.collection.reIndex()

参加文档:

https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex


出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号