mongoDB使用记录:误用数组索引
版本:mongoDB 4.2
集群方案:副本+分片
一个问题场景:集合内对多个字段建立索引,其中包含数组索引;当执行查询时,业务查询期望命中数组索引,mongodb筛选策略首次给出的执行方案命中了另外的索引key,导致当次慢查询,扫描超过1000w数量的文档,业务出现卡顿;
处理&优化方案:
- mongodb筛选策略命中的索引查询效果不理想时,后续查询请求会重新评估查询方案,这个问题在第二个查询到来时,能够成功命中业务上期望的数组索引;
- 结合具体业务的数据量、读写强度等因素评估最优索引方案,使用数组索引需要确保数组索引字段的元素数量一致且合理;
- 查询语句通过hint显式指定索引(mongodriver加入hint的支持),避免mongodb内部筛选策略可能引发的问题。
本文来自博客园,作者:linxx-,转载请注明原文链接:https://www.cnblogs.com/linxx-/p/18091052