千家信息网

MySQL如何开启慢查询日志

发表于:2024-10-15 作者:千家信息网编辑
千家信息网最后更新 2024年10月15日,这篇文章给大家分享的是有关MySQL如何开启慢查询日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等
千家信息网最后更新 2024年10月15日MySQL如何开启慢查询日志

这篇文章给大家分享的是有关MySQL如何开启慢查询日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等)

开启慢查询日志:可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

参数说明:

slow_query_log 慢查询开启状态,ON开启,OFF关闭

slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)

long_query_time 查询超过多少秒才记录

重点说明:开启慢日志版本要高,低版本无法支持,本次版本是:5.7.20

SELECT VERSION(); 查询版本号

该版本默认情况下已开启慢日志

mysql> show databases;mysql> use test;   //指定一个数据库mysql> show variables like 'slow_query%';+---------------------------+----------------------------------+| Variable_name   | Value     |+-----------------+-----------+| slow_query_log | ON |+-----------------+-----------+| slow_query_log_file | YH-20161209QIZC-slow.log |+-----------------+-----------+mysql> show variables like 'long_query_time';+-----------------+-----------+| Variable_name   | Value     |+-----------------+-----------+| long_query_time | 10.000000 |+-----------------+-----------+//默认查询超过10秒才记录

设置慢查询日志

方法一:全局变量设置(该方式数据库重启全部失效,得重新配置)

将 slow_query_log 全局变量设置为"ON"状态

mysql> set global slow_query_log='ON';

设置慢查询日志存放的位置

mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log'; //linuxmysql> set global slow_query_log_file='D:\\mysq\data\slow.log';         //windows

设置查询超过1秒就记录(如果有时候用命令不起作用,那么可以关闭再打开)

mysql> set global long_query_time=1;

方法二:配置文件设置(服务器重启不影响)

修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]slow_query_log = ONslow_query_log_file = /usr/local/mysql/data/slow.log     //linuxlong_query_time = 1

3.重启MySQL服务

service mysqld restart

测试

1.执行一条慢查询SQL语句

mysql> select sleep(2);

2.查看是否生成慢查询日志

这里可以看出是那个sql以及查询时间

如果日志存在,MySQL开启慢查询设置成功!

附:日志分析工具mysqldumpslow

在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow

查看mysqldumpslow的帮助信息:

[root@DB-Server ~]# mysqldumpslow --helpUsage: mysqldumpslow [ OPTS... ] [ LOGS... ] Parse and summarize the MySQL slow query log. Options are   --verbose    verbose  --debug      debug  --help       write this text to standard output   -v           verbose  -d           debug  -s ORDER     what to sort by (al, at, ar, c, l, r, t), 'at' is default                al: average lock time                ar: average rows sent                at: average query time                 c: count                 l: lock time                 r: rows sent                 t: query time    -r           reverse the sort order (largest last instead of first)  -t NUM       just show the top n queries  -a           don't abstract all numbers to N and strings to 'S'  -n NUM       abstract numbers with at least n digits within names  -g PATTERN   grep: only consider stmts that include this string  -h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),               default is '*', i.e. match all  -i NAME      name of server instance (if using mysql.server startup script)  -l           don't subtract lock time from total time

-s, 是表示按照何种方式排序,

  • c: 访问计数

  • l: 锁定时间

  • r: 返回记录

  • t: 查询时间

  • al:平均锁定时间

  • ar:平均返回记录数

  • at:平均查询时间

-t, 是top n的意思,即为返回前面多少条的数据;

-g, 后边可以写一个正则匹配模式,大小写不敏感的;

比如

得到返回记录集最多的10个SQL。

mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

得到按照时间排序的前10条里面含有左连接的查询语句。

mysqldumpslow -s t -t 10 -g "left join" /database/mysql/mysql06_slow.log

另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。

mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

的文章就介绍到这了,更多相关MySQL开启慢查询日志内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

感谢各位的阅读!关于"MySQL如何开启慢查询日志"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

查询 日志 时间 数据 版本 分析 文章 内容 数据库 更多 语句 配置 位置 全局 变量 命令 工具 性能 情况 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 客户机 服务器结构 网络安全包括物理安全 山东兆商网络技术有限公司 dell r320服务器装系统 网络安全已经上升为法律 郧西互联网软件开发服务保障 我国对网络安全的政治措施 潮州自主可控软件开发 辽宁信息化软件开发是做什么的 第一个华为网络技术学院 武汉软件开发驻场报价 魔兽世界 时光之穴服务器 数据库如何创建模式 农安智能化网络技术咨询售后服务 mysql数据库恢复的基础是 网络安全有必要读研吗 苏州网络安全专业大学 游戏服务器更换前需要做什么 数据库的连接技术 轻量应用服务器哪里有买 软件开发行业年增值税优惠 网络安全专业以后就业前景 无锡专业软件开发创新服务 辛巴达网络技术 增城网络安全运维联系方式 先装数据库还是先装iis 事业单位网络技术人员考核 数据库中的mul表示什么 数据库程序通过什么访问数据库 小学网络安全周宣传主题
0