
# DDS索引推荐
#### 操作场景
索引推荐功能基于实例的慢日志分析，自动识别执行效率低的查询语句，并结合查询模式、字段分布等信息，推荐能够提升查询性能的索引方案。该功能旨在帮助您快速定位索引缺失或索引不合理的问题，降低数据库调优的门槛，提升业务查询效率。
#### 使用须知
- 推荐结果仅供参考，不保证完全准确。 索引推荐基于慢日志中的历史查询样本进行分析，存在以下局限性：
  - 慢日志样本可能无法覆盖全部查询场景，推荐结果可能不完整。
  
  - 推荐索引是否真正有效，需结合您的实际业务逻辑、数据分布和集合规模综合判断。
  
  - 部分场景下，推荐的索引可能与已有索引存在冗余或重叠，请在创建前检查现有索引列表。
  
  - 如果有条件建议在测试环境中验证推荐索引的效果后，再应用至生产环境。
   
- 请在业务低谷期执行索引创建。 即使使用了 background: true 后台构建模式，创建索引仍会对系统资源产生一定消耗：
  - 索引构建过程会占用 CPU、内存和磁盘 I/O 资源。
  
  - 在数据量较大的集合上构建索引，耗时可能较长。
  
  - 高并发业务高峰期执行建索引操作，可能导致查询延迟上升，影响用户体验。
   
- 避免一次性创建过多索引。 并非索引越多越好，过多的索引会增加写操作的开销，因为每次写入都需要同步维护索引。建议每次仅创建最必要的 1 \~ 2 个索引，观察效果后再决定是否继续优化。对于已不再使用的旧索引，建议及时清理，以保持索引集合的精简。
  
- 创建前请检查现有索引。 在执行推荐索引之前，建议先通过以下命令查看当前集合的索引情况，避免重复创建：
  db.\<collectionName\>.getIndexes()
  
 
#### 功能原理
索引推荐系统的核心流程如下：
1. 慢日志采集 持续采集实例中执行时间超过阈值的慢查询日志，记录查询语句、执行计划、扫描行数等关键信息。
   
2. 查询模式分析 对慢日志中的查询语句分析，提取高频查询模式，识别过滤字段、排序字段、投影字段等维度。
   
3. 索引策略生成 基于查询模式，结合 MongoDB 索引设计最佳实践（如最左前缀原则、复合索引字段顺序等），自动生成索引推荐方案。
   
4. 推荐结果输出 以可读的索引定义形式呈现推荐结果，您可直接参考并在控制台或 MongoDB Shell 中执行创建操作。
   
 
#### 操作步骤
1. [登录管理控制台](https://console.huaweicloud.com)。
2. 单击管理控制台左上方的![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002614243213.png)，选择区域和项目。
3. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002583723440.png)，选择"数据库 \> 文档数据库服务 DDS"，进入文档数据库服务信息页面。
4. 在"实例管理"页面，选择目标实例，单击实例名称。
5. 在左侧导航树，单击"慢日志"。
6. 在"慢日志 \>日志明细"页面即可查看索引推荐。 
   图1索引推荐   
   ![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002614078421.png "点击放大")
   
   
 
#### 后续操作
索引推荐功能是您进行数据库性能调优的辅助工具，能够有效降低人工分析慢日志的成本。合理参考推荐结果，结合业务实际情况审慎决策，是获得最佳优化效果的关键。如有疑问，您可以[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)申请，完成工单提交，为您解答。
#### 相关文档
[使用索引](https://support.huaweicloud.com/bestpractice-dds/dds_0073.html)
