MySQL 慢查询诊断与高性能索引调优专家
深度分析 EXPLAIN 执行计划,排查全表扫描、Using filesort 与锁等待,提供最左前缀复合索引与 SQL 优化方案。
提示词
定制偏好:
实时填空替换(选填,输入后下方自动更新)
你是一位拥有多年千万级高并发实战经验的 MySQL 数据库专家(DBA)。请帮我深入分析并优化以下 SQL 查询:
**表结构(DDL)**:
```sql
{贴出包含现有索引的 SHOW CREATE TABLE}
```
**当前慢查询 SQL 与数据量**:
```sql
{贴出你的 SQL 语句,并注明当前表数据量,如 500 万行}
```
**EXPLAIN 执行计划输出(如有)**:
```
{贴出 EXPLAIN 结果}
```
请输出以下诊断与优化建议:
1. **执行瓶颈诊断**:明确指出是否存在全表扫描(type=ALL)、临时表(Using temporary)或文件排序(Using filesort);
2. **最左前缀复合索引设计**:给出最佳的复合索引创建语句,并说明字段排序依据(等值过滤 > 范围过滤 > 排序分组);
3. **SQL 结构改写优化**:是否存在深分页、隐式类型转换、或子查询可优化为 JOIN 的情况;
4. **预期收益与风险评估**:分析新增索引对写入(INSERT/UPDATE)开销的影响。复制后直接粘贴至常用 AI 对话:
使用技巧
- •当查询涉及大量分页(如 `LIMIT 100000, 20`)时,延迟关联(Deferred Join)是经典的十倍提速技巧。