如何开启MySQL慢查询日志

摘要: 前言 数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。

前言

数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。默认情况下,MySQL不启动慢查询日志。本文简单介绍如何开启慢查询日志,如何用mysqldumpslow分析慢查询。

开启慢查询日志

修改my.cnf

在配置文件my.cnf(一般为/etc/my.cnf)中的[mysqld] section增加如下参数。

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slow-query.log   # 若没有指定,默认名字为hostname_slow.log
long_query_time = 1log_queries_not_using_indexes = 1

其中,

  • slow_query_log = 1

    • 表示开启慢查询,0表示关闭
  • slow_query_log_file

    • 指定慢查询日志路径
    • 需要MySQL对该路径有写权限
  • long_query_time = 1

    • 表示查询时间>=1秒才记录日志
    • 默认10s
  • log_queries_not_using_indexes = 1

    • 表明记录没有使用索引的 SQL 语句

重启MySQL服务

# 重启
$ sudo service mysqld restart# 重启后进程如下root     22373  0.0  0.0  66064  1424 pts/3    S    16:59   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql    22721  0.3  0.5 890996 467040 pts/3   Sl   16:59   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

重启MySQL后会看到/var/lib/mysql/slow-query.log文件。

检查参数

通过如下命令可以检查上述参数配置情况。

mysql> show variables like 'slow_query%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| slow_query_log      | ON                            |
| slow_query_log_file | /var/lib/mysql/slow-query.log |
+---------------------+-------------------------------+
2 rows in set (0.00 sec)mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

测试

慢查询

制造慢查询并执行。如下。

mysql> select sleep(1);
+----------+
| sleep(1) |
+----------+
|        0 |
+----------+
1 row in set (1.00 sec)

慢查询日志

打开慢查询日志文件。可以看到上述慢查询的SQL语句被记录到日志中。

# Time: 180620 17:13:06
# User@Host: apsara[apsara] @ dc1487859883577.et2sqa [11.239.51.96]  Id:     3
# Query_time: 1.000246  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1529485986;
select sleep(1);

慢查询分析工具

mysqldumpslow

mysqldumpslow是MySQL自带的分析慢查询的工具。该工具是Perl脚本。

常用参数如下。

-s:排序方式,值如下c:查询次数t:查询时间l:锁定时间r:返回记录ac:平均查询次数al:平均锁定时间ar:平均返回记录书at:平均查询时间
-t:top N查询
-g:正则表达式

例子

  • 我们执行了多次类似如下的查询。
select * from db_user where name like 'zb%';
select * from db_user where name like 'aaa%';
select * from db_user where name like 'bc%';
...
  • 获取访问次数最多的5个SQL语句
$ mysqldumpslow -s c -t 5 /var/lib/mysql/slow-query.logReading mysql slow query log from /var/lib/mysql/slow-query.log
Count: 15  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), apsara[apsara]@dc1487859883577.et2sqa# Query_time: N.N  Lock_time: N.N Rows_sent: N  Rows_examined: NSET timestamp=N;select * from db_user where name like 'S'Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), apsara[apsara]@dc1487859883577.et2sqa# Query_time: N.N  Lock_time: N.N Rows_sent: N  Rows_examined: Nuse test;SET timestamp=N;select * from db_user where name like 'S'
  • 按照时间排的top 5个SQL语句
$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log
  • 按照时间排序且含有'like'的top 5个SQL语句
$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log

小结

默认情况下,MySQL不启动慢查询日志。若要检查慢查询,需要我们手动设置这个参数。一般情况下,若非调优需要,不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

原文链接

本文为云栖社区原创内容,未经允许不得转载。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pivotal冯雷:以数字化为核心竞争力的时代 自主可控是企业的“必然选择”

戳蓝字“CSDN云计算”关注我们哦!随着互联网的飞速发展,特别是近年来随着社交网络、物联网、云计算以及多种传感器的广泛应用,以数量庞大,种类众多,时效性强为特征的非结构化数据不断涌现,数据的重要性愈发…

druid去掉广告

定位问题 产生广告的JS文件在 druid-1.1.19.jar/support/http/resources/js/common.js。 查看源码可知是buildFooter方法进行植入,由init方法调用。 解决方案: 找到对应的依赖jar包,如druid-1.1.19.jar 找到support/http/resource/js/comm…

阿里巴巴的AI算法程序媛是怎样的一种存在?

摘要: 一个专注人脸识别技术长达11年的程序媛。程序媛、AI、算法、人脸识别、阿里安全图灵实验室……这些标签任何一个都极具话题性,但如果一个女子同时拥有这些标签,那会是怎样的存在?在见到于鲲之前,我的脑子里是各种…

Hadoop 中zoo_数据分析中的Excel、R、Python、SPSS、SAS和SQL

作为一直想入门数据分析的童鞋们来说,如何选定一门面向数据分析的编程语言或工具呢?注意是数据分析,而不是大数据哦,数据分析是基础了。数据分析的工具千万种,综合起来万变不离其宗。无非是数据获取、数据存储、数据管…

linux下装sqlserver安装包,【sqlServer】CentOS7.x 上Microsoft SQL Server for Linux安装和配置...

SQL Server Documentationhttps://docs.microsoft.com/en-us/sql/sql-server/sql-server-technical-documentation?viewsql-server-2017Installation guidance for SQL Server on Linuxhttps://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup?viewsql-server-20…

2019云栖大会:逍遥看巅峰,张勇提“百新”,平头哥“再亮剑”

文 | 阿晶、丹丹、王银发于阿里云栖大会现场 出品 | CSDN云计算(ID:CSDNcloud) “今天不是马云的退休,而是制度传承的开始。”9月10日,阿里20周年的大日子,逍遥子接棒风清扬,跟唱《追梦赤子心》…

10行代码让你轻松搞定对象检测

摘要: 十行代码轻松搞定对象检测?快来看看如何使用ImageAI。计算机视觉是人工智能领域中最重要的一个分支。计算机视觉是一门能够识别和理解图像及其场景的计算机软件系统的科学。计算机视觉包括图像识别、对象检测、图像生成、图像超分辨率等多个方面。…

项目集成Flowable工作流

企业级项目集成Flowable工作流,基于(师父)的开源项目的集成,此开源项目是师傅十几年的经验和实战总结而成,直接可以用于企业开发,旨为帮助更多需要帮助的人! 说明链接项目开原地址https://gitee.com/lwj/flowable博客链接https://…

shell softech 面料_求高人指点 猛犸象的SOFTECH面料和GTX PROSHELL面料哪个好

曾经看到一个帖子 关于 MAMMUT 对 SOFTECH的解释,找出来希望对 LZ 有所借鉴。作者L.HO为 我很佩服的一个 业内人士,从业于MAMMUT 公司。 转帖 再次声明 转帖,同时 希望对 MAMMUT 有所偏好的 可以作为借鉴和资料。1) softech & drytech的…

这个阿里程序员,干了件很轴的事儿

摘要: 我叫孤尽,是一名阿里程序员。 如果说,我身上有一点点和普通程序员不一样,也许是更轴一点。比如我觉得JAVA是世界上最好的语言,没有之一。 最近,我又干了一件比较轴的事情。 我因为这件事曾被大家群嘲…

360路由器v2刷第三方固件_魔百盒M301H-BYT代工MV300H芯片第三方优化刷机卡刷固件下载_移动魔百和 ROM固件...

魔百盒M301H-BYT代工MV300H芯片第三方优化刷机卡刷固件下载固件介绍:1、不带ROOT权限,适用于魔百盒M301H-BYT代工MV300H芯片。2、调出原厂固件屏蔽的wifi,开放原厂固件屏蔽的市场安装和u盘安装apk;3、无开机广告,无系统…

CVPR!你凭什么收录我3篇论文!?

摘要: 在近日举行的年度计算机视觉和模式识别盛会CVPR上,阿里云ET城市大脑的三项视觉技术论文成功入选。 别急着找原因,咱们先了解下什么是CVPR。 这个由专业技术学会IEEE(电气和电子工程师协会)主办的组织全称叫Confe…

c语言中循环结构的作用,C语言中对于循环结构优化的一些入门级方法简介

一.代码移动将在循环里面多次计算&#xff0c;但是结果不会改变的计算&#xff0c;移到循环外面去。例子&#xff1a;优化前&#xff1a;void lower1(char *s){int i;for(i0;iif(s[i]>A&&s[i]<Z)s[i]-(A-a);}优化后&#xff1a;void lower2(char *s){int i;int l…

10分钟Get拥抱无服务的正确姿势

戳蓝字“CSDN云计算”关注我们哦&#xff01;译|孔子东游文|Bob Violino来源|INSIDER PRO无服务器计算旨在实现基础设施的自动化配置以及消除服务器管理的负担&#xff0c;但是你真的准备好使用TA了吗&#xff1f;根据研究公司Markets and Markets 的2018年报告&#xff0c;无服…

DRUID连接池的实用 配置详解

文章目录DRUID介绍配置参数基于纯Java代码使用(不建议使用)&#xff1a;ds.properties内容&#xff1a;基于Spring的配置&#xff1a;浏览器验证功能DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现&#xff0c;它结合了C3P0、DBCP、PROXOOL等DB池的优点&#xff0c…

深度学习最佳实践系列——权重w初始化

摘要&#xff1a; 本文是深度学习最佳实践系列博客之权重初始化&#xff0c;主要介绍权重初始化的相关问题及方法&#xff0c;文中提及的权重初始化方法均可以应用于普通的神经网络、卷积神经网络和递归神经网络之中。作为深度学习的初学者&#xff0c;我有意识到的一件事情&am…

arcmap发布三维地图_如何使用高程DEM建立三维地图模型(Arcgis ArcScene)

同步视频教程(一)&#xff1a;(二)&#xff1a;(三)&#xff1a;最新三维&#xff1a;相关教程&#xff1a;3DMAX三维制作地形图教程 工具准备1、BIGEMAP地图下载器2、ARCGIS10.23、global mapperARCGIS下载地址&#xff1a;Global mepper下载地址&#xff1a;资料准备下载你必…

七种功能强大的聊天机器人平台

摘要&#xff1a; 本文主要介绍了七种功能强大的聊天机器人开发平台的特点与优点。聊天机器人发布平台是用户访问和使用聊天机器人的媒介&#xff0c;现在流行的一些聊天机器人发布平台有FB Messenger、Kik、Slack、Telegram以及WeChat。而聊天机器人开发平台是可以创建聊天机器…

uft自动化测试工具安装步骤_自动化功能测试和接口测试工具整理

对于自动化测试&#xff0c;原来谈这方面的内容比较少&#xff0c;但是现在我们做DevOps支撑平台的时候&#xff0c;在整个持续集成和交付的过程中&#xff0c;有一个重要的内容就是自动化测试。自动化测试的覆盖面相当大&#xff0c;其中既包括了CS&#xff0c;BS和移动APP的自…

SSM整合Druid数据库连接池

源码地址&#xff1a;https://gitee.com/gb_90/ssm_druid