MySQL 慢查询日志

MySQL有一种日志,叫做慢查询日志,主要就是用来记录一些耗时的查询操作。通过这个日志我们就可以分析出哪些的操作是影响性能的,我们需要对其进行一些优化措施。

查看开启状态

上面的截图是我在 windows 下安装的 MySQL5.7 版本,我们可以发现,这个版本是开启了慢查询的。我在 CentOS6.9 下采用 yum 的方式安装的 MySQL5.7 默认没有开启慢查询日志。不管默认有没有给我们开启,我们是需要了解慢查询日志是如何开启的,开启的方式也非常简单。找到 MySQL 的配置文件,Windows 下是 my.ini,Linux 下的是 my.cnf。进行如下配置就可以了。

slow-query-log=1
 
 
slow_query_log_file="mysql-slow.log"
 
 
long_query_time=10

第一行是指定开启慢查询日志

第二行是指定慢查询日志的路径

第三行是指定查询时间大于多少的才进行记录,但是是毫秒,也就是操作大于 10ms 的操作都会被记录。

配置完毕之后要重启 MySQL 生效。

下面来看看慢查询日志的内容

C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe, Version: 5.7.16-log (MySQL
Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
TimeId CommandArgument
#Time: 2017-07-07T06:35:46.995201Z
#User@Host: root[root] @ localhost [::1]  Id:10
#Query_time: 12.522116 Lock_time: 0.000501 Rows_sent: 0 Rows_examined: 483968 use test;
SET timestamp=1499409346;
insert into test (id,name) (select uuid() id,name from test);
#Time: 2017-07-07T06:36:15.258316Z
#User@Host: root[root] @ localhost [::1]  Id:10
#Query_time: 24.543267 Lock_time: 0.000501 Rows_sent: 0 Rows_examined: 967936 SET timestamp=1499409375;
insert into test (id,name) (select uuid() id,name from test);
#Time: 2017-07-07T06:37:15.021922Z
#User@Host: root[root] @ localhost [::1]  Id:10
#Query_time: 56.283040 Lock_time: 0.000499 Rows_sent: 0 Rows_examined: 1935872 SET timestamp=1499409435;
insert into test (id,name) (select uuid() id,name from test);
#Time: 2017-07-07T06:40:07.866659Z
#User@Host: root[root] @ localhost [::1]  Id:10
#Query_time: 133.866927 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 3871744 SET timestamp=1499409607;
insert into test (id,name) (select uuid() id,name from test);

我们可以看到在 2017-07-07 日,有多个慢查询产生。单独抽取一组,如下

#Time: 2017-07-07T06:35:46.995201Z
#User@Host: root[root] @ localhost [::1]  Id:10
#Query_time: 12.522116 Lock_time: 0.000501 Rows_sent: 0 Rows_examined: 483968 use test;
SET timestamp=1499409346;
insert into test (id,name) (select uuid() id,name from test);

Query_time 表示的是耗时时间

下面是一些操作,这的主要操作就是一个 insert

这就是慢查询日志。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏维C果糖

史上最简单的 MySQL 教程(三十三)「视图(上)」

视图:view,是一种有结构(有行有列),但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义的,而是从对应的基表(视图的数据来源)中产生的...

48490
来自专栏木头编程 - moTzxx

后台 配置页面功能设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

68540
来自专栏存储技术

MySQL加锁范围分析

最近,遇到了一个关于mysql 加锁的问题,将当时的情形简化如下,有一个index_test表,表结构如下所示:

61360
来自专栏解Bug之路

MySql之自动同步表结构

在开发过程中,由于频繁的修改数据库的字段,导致rd和qa环境的数据库表经常不一致。 而由于这些修改数据库的操作可能由多个rd操作,很难一次性收集全。人手工去和...

11610
来自专栏我的博客

centos搭建svn使用mysql管理认证

1、安装 yum install subversion 安装ssl,mysql认证模块等(如果使用http或者svn访问就不用ssl了) yum install...

30250
来自专栏ytkah

如何用SQL命令行工具删除dedecms指定id文章

  用dedecms采集时标题字段设置错了,出现了注释符号<!---->,导致后台的文章列表出现错误,也无法直接从列表中删除,可以远程登录数据库去操作,这个相对...

28760
来自专栏Python

MySQL常见的库操作,表操作,数据操作集锦及一些注意事项

一 库操作(文件夹) 1 数据库命名规则 可以由字母、数字、下划线、@、#、$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数...

26590
来自专栏抠抠空间

MySQL之pymysql模块

PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 Django中...

38370
来自专栏数据和云

深入内核:Oracle数据库里SELECT操作Hang解析

崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向“Oracl...

393100
来自专栏python读书笔记

python 数据分析基础 day10-sqlite3一、使用逻辑二、创建数据库及表三、插入记录四、更新记录五、获取记录

今天是读《python数据分析基础》的第10天,今天的笔记内容是利用sqlite3模块对数据库文件进行操作。这个模块的笔记主要分为五个板块:sqlite3的使用...

31060

扫码关注云+社区

领取腾讯云代金券