一 定位性能低的SQL
1 查看是否开启了慢查询日志
show variables like 'slow_query_log';
默认是OFF,不开启,可以手动开启
2 开启慢查询日志
set global slow_query_log=1;
3 设置慢查询日志的阈值
慢查询日志的阈值默认是10,单位是秒。
对于线上服务来说,10秒太长了,我们可以手动修改。
一种是通过MySQL命令修改,比如修改为1秒:
set long_query_time=1;
二 explain
type:访问类型,表示以何种方式去访问数据库,最容易想的是全表扫描,即直接暴力的遍历一张表去寻找需要的数据,效率非常低下。
访问的类型有很多,效率从最好到最坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL