慢查询排查入门:给数据库装上放大镜
页面越来越慢,八成能从数据库里抓到元凶。
开启慢日志
SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 1;读懂 EXPLAIN
- type 列:ALL(全表扫描)是要消灭的对象,至少优化到 ref/range
- rows 列:预估扫描行数,越大越危险
- Extra:Using filesort / Using temporary 是排序与临时表的信号
加索引的原则
- 给 WHERE、JOIN、ORDER BY 用到的列加
- 联合索引遵循最左前缀
- 加完用 EXPLAIN 验证生效,并观察写入性能是否受影响