mongo索引查询优化

1. 选择合适的文件系统便于mongodb随时申请磁盘空间(使用ext4,xfs取代ext3)

2. 包含排序的查询语句,优化的方法是索引中包含排序字段。如果还有$in语句,那么建立索引的时候,排序字段应该在$in语句对应字段的前面。

a: 联合索引

db.comments.find({ tags :'mongodb'}).sort({ created_at : -1});

db.comments.ensureIndex({tags :1, created_at : -1});

b: 排序与选择列

1. 排序的列一定要在索引的最后。

好的:

find(a=1).sort(a)

find(a=1).sort(b)

find(a=1, b=2).sort(c)

不好的:

find(a=1).sort(c)

即使c是索引的最后一列,如果a列是所使用的最后一列,你只能通过a或者b列进行排序。

c:

MongoDB's $ne 或者$nin 操作在索因伤是无效的。

d: $in操作和排序同时存在,事情完全不一样了

db.collection.find({"country": {"$in": ["A","G"]}}).sort({"carsOwned":1})

db.test.find({a:1,b:{$in:[1,2]}}).sort({c:1})

那么可能建立 {a:1, c:1, b:1} 的联合索引会比较合适

refer: http://blog.csdn.net/liqfyiyi/article/details/51791233

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 4,572评论 0 2
  • 简介 MongoDB 是一个基于分布式文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WE...
    大熊_7d48阅读 37,655评论 1 9
  • 1. MongoDB 简介 MongoDB是一个可扩展的高性能,开源,模式自由,面向文档的NoSQL,基于分布式文...
    rhlp阅读 4,821评论 0 3
  • NoSql数据库优缺点 在优势方面主要体现在下面几点: 简单的扩展 快速的读写 低廉的成本 灵活的数据模型 在不足...
    dreamer_lk阅读 7,748评论 0 6
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,469评论 0 23