更新时间:2026-07-21 GMT+08:00
分享

DDS索引推荐

操作场景

索引推荐功能基于实例的慢日志分析,自动识别执行效率低的查询语句,并结合查询模式、字段分布等信息,推荐能够提升查询性能的索引方案。该功能旨在帮助您快速定位索引缺失或索引不合理的问题,降低数据库调优的门槛,提升业务查询效率。

使用须知

  • 推荐结果仅供参考,不保证完全准确。

    索引推荐基于慢日志中的历史查询样本进行分析,存在以下局限性:

    • 慢日志样本可能无法覆盖全部查询场景,推荐结果可能不完整。
    • 推荐索引是否真正有效,需结合您的实际业务逻辑、数据分布和集合规模综合判断。
    • 部分场景下,推荐的索引可能与已有索引存在冗余或重叠,请在创建前检查现有索引列表。
    • 如果有条件建议在测试环境中验证推荐索引的效果后,再应用至生产环境。
  • 请在业务低谷期执行索引创建。

    即使使用了 background: true 后台构建模式,创建索引仍会对系统资源产生一定消耗:

    • 索引构建过程会占用 CPU、内存和磁盘 I/O 资源。
    • 在数据量较大的集合上构建索引,耗时可能较长。
    • 高并发业务高峰期执行建索引操作,可能导致查询延迟上升,影响用户体验。
  • 避免一次性创建过多索引。

    并非索引越多越好,过多的索引会增加写操作的开销,因为每次写入都需要同步维护索引。建议每次仅创建最必要的 1 ~ 2 个索引,观察效果后再决定是否继续优化。对于已不再使用的旧索引,建议及时清理,以保持索引集合的精简。

  • 创建前请检查现有索引。

    在执行推荐索引之前,建议先通过以下命令查看当前集合的索引情况,避免重复创建:

    db.<collectionName>.getIndexes()

功能原理

索引推荐系统的核心流程如下:

  1. 慢日志采集

    持续采集实例中执行时间超过阈值的慢查询日志,记录查询语句、执行计划、扫描行数等关键信息。

  2. 查询模式分析

    对慢日志中的查询语句分析,提取高频查询模式,识别过滤字段、排序字段、投影字段等维度。

  3. 索引策略生成

    基于查询模式,结合 MongoDB 索引设计最佳实践(如最左前缀原则、复合索引字段顺序等),自动生成索引推荐方案。

  4. 推荐结果输出

    以可读的索引定义形式呈现推荐结果,您可直接参考并在控制台或 MongoDB Shell 中执行创建操作。

操作步骤

  1. 登录管理控制台
  2. 单击管理控制台左上方的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 文档数据库服务 DDS,进入文档数据库服务信息页面。
  4. “实例管理”页面,选择目标实例,单击实例名称。
  5. 在左侧导航树,单击“慢日志”。
  6. 在"慢日志 >日志明细"页面即可查看索引推荐。

    图1 索引推荐

后续操作

索引推荐功能是您进行数据库性能调优的辅助工具,能够有效降低人工分析慢日志的成本。合理参考推荐结果,结合业务实际情况审慎决策,是获得最佳优化效果的关键。如有疑问,您可以提交工单申请,完成工单提交,为您解答。

相关文档

使用索引

相关文档