一、开启慢查询日志
1、开启慢查询日志:
sql">mysql> set global slow_query_log=on;
Query OK, 0 rows affected (0.00 sec)
默认是off(关闭),修改成on(打开)。
2、查看日志文件存放路径:
sql">show variables like 'slow_query_log_file';
默认存放在:/home/mysql/log/mysql/slow_query.log。
3、查看慢SQL的记录时间:
sql">show variables like 'long_query_time';
系统默认时间为10,单位是秒,我们可以自己设置这个值,使用小数表示,可以精确到微秒。
4、设置慢SQL的记录时间:
sql">set global long_query_time = 3;
二、使用mysql自带的explain分析SQL语句(DESC)
sql">explain select * from tb_user;
查询的结果是对当前SQL语句的分析结果,我们需要关注的字段有:
type: 查询索引的类型,是否拥有优化的空间,是否是全索引扫描,或者全表扫描
type类型主要有以下类型,效率从左向右依次降低:
null(不涉及表)、system(系统表)、const(主键)、eq_ref(主键索引或者唯一索引)、ref(使用索引)、range(范围)、index、all(全表)
possible_keys:查看sql中可能存在的索引
key、key_len:检查是否命中索引
Extra:判断SQL中是否出现回表的情况,出现了可以尝试添加索引或者修改返回字段来修复