MongoDB玩转索引(四)

举报
brucexiaogui 发表于 2021/12/30 02:05:49 2021/12/30
【摘要】 MongoDB玩转索引(四) 一、索引 1.索引提高查询速度,降低写入和修改速度,权衡常用的查询字段,不必在太多列上建索引 2. 在mongodb中,索引可以按字段升序/降序来创建,便于排序 3. 默认是用btree(二叉树)来组织索引文件,2.4版本以后,也允许建立hash索引. 二、创建索引(索引类型) 1、创建普通单列索...

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()

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/80189999

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。