原文路径
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) 来执行服务器端的操作
这样可以避免每次更新按照下面流程:
- 选择获取文档
- 在客户端进行简单修改
- 将整个文档写入服务器。
修改更新器简单介绍
修改更新器包括以下:
- $inc 增加字段的值,格式为
{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }
- $mul 乘除法
- $rename 重命名
- $setOnInSert 如果该更新操作插入了一个文档,那么设置字段的值
- $set 设置字段的值
- $unset 删除某个字段
- $min 只在指定的值小于当前值时更新该字段
- $max 和$min相反
- $currentDate 设置字段的值为当前时间
网友评论