如何用mysql记录耗时的sql

50次阅读
没有评论

共计 1784 个字符,预计需要花费 5 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关如何用 mysql 记录耗时的 sql,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

 
记录耗时的 sql
 
mysql 可以把耗时的 sql 或未使用索引的 sql 都记录在 slow log 里,供优化分析使用。
 
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

上述就是丸趣 TV 小编为大家分享的如何用 mysql 记录耗时的 sql 了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计1784字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)