mongoDB使用记录:误用数组索引

版本:mongoDB 4.2
集群方案:副本+分片

一个问题场景:集合内对多个字段建立索引,其中包含数组索引;当执行查询时,业务查询期望命中数组索引,mongodb筛选策略首次给出的执行方案命中了另外的索引key,导致当次慢查询,扫描超过1000w数量的文档,业务出现卡顿;

处理&优化方案:

  1. mongodb筛选策略命中的索引查询效果不理想时,后续查询请求会重新评估查询方案,这个问题在第二个查询到来时,能够成功命中业务上期望的数组索引;
  2. 结合具体业务的数据量、读写强度等因素评估最优索引方案,使用数组索引需要确保数组索引字段的元素数量一致且合理;
  3. 查询语句通过hint显式指定索引(mongodriver加入hint的支持),避免mongodb内部筛选策略可能引发的问题。
posted @ 2024-03-23 14:05  linxx-  阅读(8)  评论(0编辑  收藏  举报