针对实际查询和数据分布评审索引、扫描范围及写入成本,避免只优化一条SQL却拖慢整体。
## 任务目标 请评审 MySQL SQL 与组合索引的上线方案。 以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 查询与索引:优先采用当前慢查询或待改 SQL;留空时从目标模块的高频列表、关联与分页语句中选取有执行计划或调用证据的一组查询,保留未改索引的基线。 工程与查询资料:从 Mapper XML、迁移 DDL、现有索引和测试样例读取 SQL 与绑定参数,结合已有执行计划、查询指标及数据库版本信息展开审查。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 追踪查询对应的业务过滤、租户权限、排序稳定性与最大结果量。 - 读取字段与绑定参数类型、现有组合索引及其被哪些 SQL 使用。 - 对照代表性参数、已有执行计划和数据分布,识别热门值、空值与深分页差异。 - 检查候选索引对写入、存储和其他查询的影响,以及已有迁移审查方式。 ### 可采用的默认处理 - 默认只读评审,输出候选 SQL 和最小 DDL,不实际创建或删除索引。 - 缺计划和分布时先审查语义、类型及索引复用,性能结论保持条件化,不执行可能有成本或副作用的实际分析。 - 保留权限过滤、稳定排序及不改索引的基线,不自动接受云平台优化建议。 ### 必须有依据的事项 - 查询应返回的数据范围、排序或分页业务含义无法确定时,不采用可能改变结果的 SQL 改写。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 只有 SQL 时交付语义与类型检查、附前提的候选索引及获取代表性执行计划的方法。 - 无 SQL 时提供参数分布、索引复用与读写成本的评审表和同数据负载的对比用例。 ## 执行要求 适用范围:MySQL表与查询,具体优化能力以MySQL版本及存储引擎为准。阿里云自动优化是有产品前提的可选能力,不默认启用。 结合实际 SQL 评审索引,检查局部优化是否会使全局性能变差。 检查步骤: 1. 明确查询要返回的业务数据,记录租户或权限条件、排序稳定性、分页方式和最大结果量;先核对SQL语义,不能为速度删掉业务过滤条件。 2. 检查字段类型与参数类型是否一致,梳理等值、范围、关联和排序的组合;索引是否有效以目标版本计划验证,不把函数、非等值等语法一律认定无索引可用。 3. 读取现有计划和代表性参数,比较估算行数、实际可得的扫描信息及返回量;数据分布未知时提出采样方法,说明空值、热门值和历史数据可能改变选择性。 4. 提出最少数量的候选索引与改写方案,逐项说明服务哪些高频SQL、可否复用已有索引以及对写入和空间的影响;保留不改索引的基线方案。 5. 在相同数据与负载下比较正常参数、极端参数和深分页场景,核对返回结果一致;除目标查询延迟外,观察更新耗时、并发吞吐和资源使用。 6. 给出上线顺序、观察窗口及回退条件,索引创建与删除分开说明;如果有DAS建议,先判断其证据和适用范围,不把平台建议直接当成已批准变更。 ## 交付与验收 输出要求:按SQL清单、证据、候选方案对比、最小DDL和验证计划输出。所有性能结论给出测量条件,未执行的优化只写预期;新增字段时必须补齐详细中文COMMENT。 只报告有证据支持的问题;区分“已验证”“推测”和“待验证”,涉及变更时给出受影响文件或对象、最小修改和复核方法。代码与操作示例使用占位符,不写入真实密码。 ### 本条完成检查 - 候选索引逐一关联服务的 SQL、复用机会、写入和空间代价。 - 验证结果集与权限一致,再比较正常、极端参数和深分页的性能。 - 建议注明版本、数据与测量条件,创建删除分别评估,未执行 DDL 不表述为已优化。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 来源(核验日期:2026-09-08): [腾讯云《云数据库 MySQL 使用规范》](https://intl.cloud.tencent.com/zh/document/product/236/13390?lang=zh) [阿里云《RDS MySQL 自动SQL优化》](https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/use-the-automatic-sql-optimization-feature-for-an-apsaradb-rds-for-mysql-instance) 整理范围:仅依据上述公开文档的相关建议,业务场景、变量、检查流程与验收格式均为独立改写,不代表相关企业完整内部规范。