植物健康系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
2026/1/16 14:29:07
SHOWVARIABLESLIKE'slow_query_log';SHOWVARIABLESLIKE'long_query_time';SHOWVARIABLESLIKE'slow_query_log_file';SETGLOBALslow_query_log=ON;SETGLOBALlong_query_time=1;# 按执行次数排序前10条mysqldumpslow-sc-t10/var/log/mysql/slow.log# 按总耗时排序前10条mysqldumpslow-st-t10/var/log/mysql/slow.logEXPLAINSELECTid,order_noFROMordersWHEREuser_id=100ANDcreate_time>='2024-01-01'ORDERBYcreate_timeDESC;| 字段 | 看什么 |
|---|---|
| type | 是否出现 ALL(全表扫描) |
| rows | 扫描行数是否过大 |
| key | 是否使用到了正确索引 |
| Extra | 是否出现Using filesort或Using temporary |
type⭐⭐⭐(最关键字段!)访问效率从高到低:
system > const > eq_ref > ref > range > index > ALL| 值 | 说明 | 是否理想 |
|---|---|---|
const | 通过主键/唯一索引查一行(如WHERE id=1) | ✅ 最优 |
eq_ref | 多表连接时,使用主键或唯一索引关联 | ✅ 优秀 |
ref | 使用非唯一索引等值查询 | ✅ 良好 |
range | 索引范围扫描(如BETWEEN,IN,>) | ⚠️ 可接受 |
index | 全索引扫描(遍历整个索引树) | ❌ 避免 |
ALL | 全表扫描 | ❌ 必须优化! |
💡目标:让
type至少达到range,最好ref或更高。
rows⭐type=ALL且rows很大 → 性能灾难!key⭐NULL?→ 未走索引!Extra⭐⭐⭐(隐藏陷阱!)包含重要性能提示:
| 值 | 问题 | 优化方案 |
|---|---|---|
Using where | 服务层过滤(正常) | — |
Using index | 覆盖索引(无需回表) | ✅ 理想状态 |
Using index condition | 索引条件下推(ICP,MySQL 5.6+) | ✅ 优化 |
❌Using filesort | 无法用索引排序,需额外排序 | 为ORDER BY字段加索引 |
❌Using temporary | 创建临时表(如GROUP BY无索引) | 为分组字段加索引 |
Select tables optimized away | 优化器直接返回结果(如MIN/MAX) | ✅ 极优 |
💥看到
Using filesort或Using temporary必须优化!