美文网首页
mongo复合索引

mongo复合索引

作者: java_飞 | 来源:发表于2018-08-13 16:48 被阅读52次

1、复合索引创建语法

db.collection.createIndex( { : , : , ... } )

同创建单键(列)索引一样,索引创建时需要指定每一个键索引的顺序

多个键直接用逗号分隔

索引创建语法可以参考:http://blog.csdn.net/leshami/article/details/53541978

2、复合索引的一些特性

复合索引可以支持要求匹配多个键的查询

复合索引每一个键的顺序非常重要,这将决定该索引在查询过程中能否被使用到

复合索引支持前导(缀)列索引查询

不能够创建基于哈希索引类型的复合索引

任意复合索引字段不能超过31个

在关注关系的业务场景中,经常会取消关注和关注,这个操作是很频繁的,每次关注和取消我都要相应的将库中的关系添加或删除,之前是做了删除之前先查询以及防止重复提交,后来测试阶段发现防止重复添加会使正常的关注和取关操作无法执行;然后我取消防止重复提交的话,在高并发情况下会出现重复的数据;之后考虑通过mongo的复合唯一索引来对这个去重在java 中给对应的实体类加上注解

@CompoundIndexes({

        @CompoundIndex(name = "xx名字",def = "{'xx':1,'xx':1}",unique = true)

})

然后我进行了测试,发现连续同样的五条记录插进去,中间没有报任何错误,但是库中正好只有唯一一条,刚好符合我的需求;然后接着用并行流模拟高并发情况下,也并没有出现错误;我测试的是复合唯一索引,复合索引的话就另行测试吧。

相关文章

  • mongo复合索引

    1、复合索引创建语法 db.collection.createIndex( { : , : , ... } ) 同...

  • mongo回顾(四)

    上回聊到mongo索引采用了B树,而且采用的原因。今天具体聊聊mongo中的索引。MongoDB defines ...

  • mongo索引

       不使用索引的查询称为全表扫描。通常来说,应该尽量避免全表扫描,全表扫描的效率非常低。   创建索引: db....

  • Mongo索引-$or

    MongoDB 中索引因为 $or 引发过多次问题,最近又有新发现,所以决定趁此机会,将发现总结在这里。 综述 规...

  • mongodb索引

    mongodb的速度很大程度上取决于mongo的hash设计,而与此关系最密切的就是mongo的索引。 查看索引 ...

  • MySQL-联合索引

    一、什么是联合索引 两个或更多个列上的索引被称作联合索引,联合索引又叫复合索引。对于复合索引:Mysql从左到右的...

  • 优化网站加载速度-mongo篇

    笔者项目用到技术点 php+mongo+sql+redis mongo的索引 首先说明一下,使用mongo不加搜索...

  • MongoDB索引

    1. 单字段索引 对普通字段创建索引 对内嵌的文档字段创建索引 2. 复合索引 复合索引的字段顺序、字段的升降序对...

  • mongo回顾(三:索引B+树)

    上回提到mongo怎么进行模式设计。今天就来聊聊mongo的索引B树。 https://docs.mongodb....

  • mongodb索引操作

    查看索引 创建复合索引:"0"字段升序“p”降序 删除索引

网友评论

      本文标题:mongo复合索引

      本文链接:https://www.haomeiwen.com/subject/hnpubftx.html