MySQL 9从入门到性能优化-慢查询日志
【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客
《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com)
MySQL9数据库技术_夏天又到了的博客-CSDN博客
MySQL 9从入门到性能优化-通用查询日志-CSDN博客
MySQL 9从入门到性能优化-错误日志-CSDN博客
MySQL 9从入门到性能优化-二进制日志-CSDN博客
慢查询日志主要用来记录执行时间较长的查询语句。通过慢查询日志,可以找出执行时间较长、执行效率较低的语句,然后进行优化。本小节将讲解慢查询日志的相关内容。
12.5.1 启动和设置慢查询日志
MySQL中慢查询日志默认是关闭的,可以通过配置文件my.ini或者my.cnf中的log-slow-queries选项打开,也可以在MySQL服务启动的时候使用--log-slow-queries[=file_name]启动慢查询日志。启动慢查询日志时,需要在my.ini或者my.cnf文件中配置long_query_time选项指定记录阈值,如果某条查询语句的查询时间超过了这个值,这个查询过程就会被记录到慢查询日志文件中。
在my.ini或者my.cnf中开启慢查询日志的配置如下:
[mysqld]
log-slow-queries[=path / [filename] ]
long_query_time=n
path为日志文件所在目录路径,filename为日志文件名。如果不指定目录和文件名称,则默认存储在数据目录中,文件为hostname-slow.log,hostname是MySQL服务器的主机名。参数n是时间值,单位是秒。如果没有设置long_query_time选项,则默认时间为10秒。
12.5.2 查看慢查询日志
MySQL的慢查询日志是以文本形式存储的,可以直接使用文本编辑器查看。
【例12.10】查看慢查询日志。使用文本编辑器打开数据目录下的Kevin-slow.log文件,文件部分内容如下:
C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld.exe, Version: 9.0.1 (MySQL Community Server - GPL). started with:
TCP Port: 3306, Named Pipe: MySQL
Time Id Command Argument
# Time: 181230 17:50:35
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 136.500000 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1314697835;
SELECT BENCHMARK(100000000, PASSWORD('newpwd'));
可以看到,这里记录了一条慢查询日志。执行该条查询语句的账户是root@localhost,查询时间是136.500000秒,查询语句是“SELECT BENCHMARK(100000000, PASSWORD('newpwd'));”,该语句的查询时间大大超过了默认值10秒,因此被记录在慢查询日志文件中。
注意: 借助慢查询日志分析工具,可以更加方便地分析慢查询语句。比较著名的慢查询工具有MySQL Dump Slow、MySQL SLA、MySQL Log Filter、MyProfi。关于这些慢查询分析工具的用法,可以参考相关软件的帮助文档。
12.5.3 删除慢查询日志
和错误日志一样,慢查询日志也可以直接删除。删除后在不重启服务器的情况下,需要执行mysqladmin -u root-p flush-logs重新生成日志文件,或者在客户端登录到MySQL服务器执行FLUSH LOGS语句重建日志文件。