mysql能够把耗时的sql或未运用索引的sql都纪录在slow log里,供优化剖析运用。本文重要引见了mysql纪录耗时的sql实例详解的相干材料,这里供应完成要领,须要的朋侪能够参考下,希望能协助到人人。
1.mysql慢查询日记启用:
mysql慢查询日记关于跟踪有题目的查询异常有效,能够剖析出当前顺序里有很消耗资本的sql语句,那怎样翻开mysql的慢查询日记纪录呢?
mysql> show variables like 'log_slow_queries'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | log_slow_queries | OFF | +------------------+-------+ 1 row in set (0.01 sec) mysql>
这申明slow log功用没有启用,要启用须要修正mysql的设置文件,在设置文件"[mysqld]"里增添以下俩参数:
long_query_time=1 log-slow-queries=/var/mysql/logs/slow.log
申明
long_query_time
此参数示意的是慢查询的器量时候,单元是秒,最小是1,缺省值是10,通常实行时候凌驾long_query_time的sql语句都邑纪录到慢查询日记中
log-slow-queries[=file_name]
file_name参数可选,缺省值是host_name-slow.log,假如指定了file_name参数的话,mysql就会把慢查询的日记纪录到file_name所设定的文件中,假如file_name供应的是一个相对路径,mysql会把日记纪录到mysql的data目次中,这个参数只能在设置文件里增添,没法在命令行里实行。
2.将未运用索引查询也纪录到slow log中的设置
在mysql的启动设置文件或命令行参数中增添“log_queries_not_using_indexes” 参数就能够把未运用索引查询语句增添到slow log里了。
样例以下:
[root@localhost mysqlsla-2.03]# more /etc/my.cnf [mysqld] datadir=/var/lib/mysql log_bin=/tmp/mysql/bin-log/mysql-bin.log log_bin=ON socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 log_slow_queries=/tmp/127_slow.log long_query_time=1 log_queries_not_using_indexes .......
重启mysql后,搜检效果以下:
mysql> show variables like 'log_slow_queries'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | log_slow_queries | ON | +------------------+-------+ 1 row in set (0.00 sec) mysql> show variables like 'long_query_time'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | long_query_time | 2 | +-----------------+-------+ 1 row in set (0.00 sec) mysql>
相干引荐:
mysql纪录耗时的sql_MySQL
用MySQL剖析SQL的耗时题目
关于处置惩罚耗时长的php文件的方法
以上就是实例详解mysql纪录耗时的sql语句的细致内容,更多请关注ki4网别的相干文章!