优化mongodb查询性能

原文路径

https://docs.mongodb.org/manual/tutorial/optimize-query-performance-with-indexes-and-projections/

创建支持查询的索引

索引可以极大的提升查询速度,对于搜索多个字段的查询,可以使用复合索引。索引支持查询、更新、聚合管道的某些步骤。mongodb的可以从升序、降序读取索引,因此单键索引的顺序并无所谓。如果被索引的数据是以下类型,那么它们可能更加高效的存储在索引中

  • 二进制子类型,值在0-7或者128-135并且
  • 字节数组的大小为:0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,32

限制查询结果的数量,减少网络负载

使用limit()

使用投影(projection)只返回必要的字段

使用$hint来选择特定的索引

虽然查询优化器会自动选择最合适的索引,然而可以使用hit()强制使用某个索引。

使用修改更新器(update modifier) 来执行服务器端的操作

这样可以避免每次更新按照下面流程:

  1. 选择获取文档
  2. 在客户端进行简单修改
  3. 将整个文档写入服务器。

修改更新器简单介绍

修改更新器包括以下:

  • $inc 增加字段的值,格式为
{ $inc: { : , : , ... } }
  • $mul 乘除法
  • $rename 重命名
  • $setOnInSert 如果该更新操作插入了一个文档,那么设置字段的值
  • $set 设置字段的值
  • $unset 删除某个字段
  • $min 只在指定的值小于当前值时更新该字段
  • $max 和$min相反
  • $currentDate 设置字段的值为当前时间

你可能感兴趣的:(优化mongodb查询性能)