MongoDB玩转索引(四)

MongoDB玩转索引(四)

一、索引

1.索引提高查询速度,降低写入和修改速度,权衡常用的查询字段,不必在太多列上建索引
2. 在mongodb中,索引可以按字段升序/降序来创建,便于排序

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

二、创建索引(索引类型)

1、创建普通单列索引语法:db.collection.ensureIndex({field:1/-1});  1是升序   -1是降序


2、查看当前索引: db.collection.getIndexes();

3、删除索引:db.collection.dropIndex({filed:1/-1});


4、删除所有索引:db.collection.dropIndexes();

5、创建多列索引:db.collection.ensureIndex({field1:1/-1, field2:1/-1});


6、创建子文档索引:db.collection.ensureIndex({filed.subfield:1/-1});

①、创建子文档数据


②、查询子文档的数据,获取子文档属性需要使用字段名称点上属性名称。如下查询area为zhongguo的子文档数据:


③、创建子文档索引


三、创建索引(索引性质)

1、唯一索引:db.collection.ensureIndex({filed.subfield:1/-1}, {unique:true});


2、稀疏索引

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

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

③、创建稀疏索引语法:db.collection.ensureIndex({field:1/-1},{sparse:true});

在sex列上创建索引,由于后面两条数据没有sex,所以采用稀疏索引创建索引。



3、哈希索引:db.collection.ensureIndex({file:’hashed’});


4、重建索引

①、一个表经过很多次修改后,导致表的文件产生空洞,索引文件也如此.可以通过索引的重建,减少索引文件碎片,并提高索引的效率.

②、索引重建语法:db.collection.reIndex()



猜你喜欢

转载自blog.csdn.net/m0_38039437/article/details/80189999