查看slow_query_log是否开启,OFF就是关闭的,ON就是开启的。
mysql> show variables like 'slow_query%';
新建文件,文件的目录你自己选,修改下内容就行了
# touch /mysql-slow.log
给予权限,不然会开启不成功
# chown -R mysql:mysql /mysql-slow.log
开启只需到/etc/my.cnf
中添加以下内容,如果里面已经有[mysqld]
就不需要加
slow_query_log = ON
slow_query_log_file = /mysql-slow.log
long_query_time = 1
slow_query_log
:开启
slow_query_log_file
:日志写入文件
long_query_time
:超过多少秒就写入
Query_time
:查询时间
Lock_time
:锁表时间
Rows_sent
:慢查询返回记录
Rows_examined
:扫描过的行数
这样你就可以找到需要优化的语句了,如果没有这个,用户反馈说卡你也无从查起。
慢查询次数查询
mysql> show global status like "%slow%";
语句分析
mysql> desc SELECT * FROM user limit 1;
select_type
:查询类型。
table
:查询的数据表
possible_keys
:显示应用在这张表中的索引。
type
:从最好到最差的连接类型为const、eq_reg、ref、range、index和all。
key
: 实际使用的索引。
key_len
:使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref
:显示索引的哪一列被使用了。
rows
:扫描的行数。
Extra
:关于mysql如何解析查询的额外信息。
注意:修改配置文件需要重启mysql才能生效。