用途:这是一个编排型技能,用于在用户给出慢查询并希望提速时,按确定性的 7 步流程驱动分析。它不讲解 EXPLAIN 语法,而是作为检查清单,并引用三个配套技能(mariadb-impl-query-optimization、mariadb-syntax-indexing、mariadb-errors-slow-queries)处理底层机制。
适用触发:用户粘贴 SQL 并称其慢、超时;用户给出查询加 EXPLAIN 输出并要求优化;用户问“是否该加索引”“需要哪个索引”;用户提出索引或 FORCE INDEX 并询问是否正确。
主要能力与流程:1)要求同时提供查询与 EXPLAIN(或 EXPLAIN FORMAT=JSON),缺失时给出 EXPLAIN <query>; 让用户运行;2)读取 EXPLAIN 信号(type=ALL、key=NULL、Using filesort、Using temporary、Using join buffer、rows 与 filtered、DEPENDENT SUBQUERY);3)将瓶颈归为唯一一类:缺索引、错索引、排序问题、连接顺序问题、子查询问题;4)按优先级给修复:加/修索引 > 覆盖索引 > 查询改写 > FORCE INDEX(最后手段并附警告);5)校验索引:说明选择性假设,并用 SHOW INDEX FROM <table> 检查是否与现有索引重复;6)用 ANALYZE FORMAT=JSON <query>; 对比 r_rows 与 rows 验证,偏差大说明统计过期,建议 ANALYZE TABLE;7)按固定格式输出:瓶颈、根因、建议变更、选择性、预期效果、验证方式。
限制与规则:禁止在无执行计划时分析查询;禁止把 FORCE INDEX 作为长期生产修复;禁止照搬 MySQL 8 优化器提示(/*+ ... */);禁止在未说明选择性假设时推荐索引;不得用 ANALYZE UPDATE/DELETE 查看计划,因其会执行写操作。资料未提供具体收费、价格或平台信息。