MongoDB“选错索引”并非bug,而是Plan Cache复用了过时的winningPlan;数据分布突变、索引重建或字段重复值激增后,缓存计划未更新,导致本该走IXSCAN却执行COLLSCAN。为什么 MongoDB 会“选错索引”?不是 bug,是缓存没更新MongoDB 查询优化器本身不“错”,它只是忠实地复用了过时的 winningPlan。当集合数据量突增、索引被删/重建、或字段值分布明显偏移(比如某字段突然出现大量重复值)后,原先缓存的执行计划可能已不再最优——但它仍被复用,导致本该走 idx_customerId 的查询继续全表扫描(COLLSCAN)。这种现象在 Robo 3T 的 Explain 结果里最直观:你看到 executionStats.nReturned 很小,但 executionStats.totalDocsExamined 却高达几十万,说明索引没生效;而 executionPlan.winningPlan.stage 显示的是 IXSCAN,但实际走的是 COLLSCAN —— 这往往就是 Plan Cache 没刷新的典型信号。如何安全清理特定查询的 Plan Cache?别直接 db.runCommand({clearPlanCache: "coll"})clearPlanCache 是粗暴但有效的兜底手段,但它会清空整个集合所有查询的缓存,可能引发短时编译风暴。更推荐按需精准清理:先用 explain("executionStats") 确认问题查询的 queryHash(Robo 3T 的 Explain 输出里有)再执行:db.runCommand({clearQueryCache: "duoduologmodel", query: {"Tags.SN": "QZ435698245"}, sort: {OPTime: -1}, limit: 20})(注意:字段顺序、大小写、是否带 $eq 都必须完全一致,否则匹配失败)如果不确定 exact query shape,可先用 db.duoduologmodel.getPlanCache().list() 查看当前缓存中的所有 queryHash 和对应计划Robo 3T 里怎么看 Plan Cache 是否生效?别只信 winningPlanRobo 3T 的 Explain 界面容易让人误判——它默认只显示最终选中的 winningPlan,而隐藏了真正关键的 rejectedPlans 和 queryPlanner.indexFilterSet。真正要盯的是这几个字段: 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能
MongoDB为什么会选错索引_查询优化器计划缓存(Plan Cache)清理
张小明
前端开发工程师
HTTP POST发包测试文章
一、引言本文测试通过API直接发布到CSDN,无需浏览器操作。二、技术细节使用阿里云API网关签名机制(HMAC-SHA256)实现安全认证。三、结论通过直接HTTP调用可以成功发布文章到CSDN平台。
WindowsCleaner终极指南:如何高效解决C盘空间不足问题
WindowsCleaner终极指南:如何高效解决C盘空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner WindowsCleaner是一款专为Windows系统设计的智能…
来吧,一篇搞懂嵌入式链接文件!
做嵌入式开发的朋友,大概率都遇到过这样的场景:编译完一个工程,输出目录里一堆文件,.axf、.elf、.bin、.hex、.sct、.ld…… 后缀五花八门,看着就头大。很多人只知道 “这个是用来烧录的,那个是用来调试的”…
最佳复古游戏体验设置
最佳复古游戏体验设置 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mirrors/be/BetterJoy 模拟器&#…
为什么锡银凸点要加入银?
在半导体封装进入“无铅化”时代后,纯锡虽然成本低,但在实际应用中暴露出很多致命弱点。在纯锡中加入少量银(通常是 1.0% ~ 3.5%),能在微观结构上引发“脱胎换骨”的变化。主要原因可以归结为以下四大核心优势…
Windows驱动管理终极指南:DriverStore Explorer高效清理系统冗余驱动
Windows驱动管理终极指南:DriverStore Explorer高效清理系统冗余驱动 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows系统在长期使用过程中会累积大量驱动程序文件&a…