一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“关于mysql里面的慢查询”。
slow query
慢查询又叫长查询,简单的理解就是消耗时间比较长的查询语句
开启慢查询
查看慢查询是否开启的相关变量信息
查看变量信息语句的语法
SHOW VARIABLES LIKE '%变量名%'
与慢查询相关的变量有以下两个:
SHOW VARIABLES LIKE '%slow_quer%'
如果log_slow_queries变量的值显示为OFF
那么需要重新设置这个值,设置的语法
SET @log_slow_queries = ON
SHOW VARIABLES LIKE '%long%'
表示查询的时间多长为慢查询
关于如何设置mysql的慢查询,不同的mysql版本可能会有一些不同,但原理都一样,window下开启慢查询的步骤如下:
1.找到mysql的配置文件,在mysql安装目录下有一个my.ini的配置文件。
但是通常在mysql的目录下可以看到多个不同的配置文件,通常包含:my.ini、my-huge.ini、my-innodbheavy-4G.ini、my-large.ini、my-medium.ini、my-small.ini,这些其实都是mysql的配置文件,只是针对不同的情况下的不同设置。
2.在my.ini配置文件中的[mysqld]部分添加以下代码即可
//设置慢查询时间,超过2秒视为慢查询
long_query_time=2
//设置慢查询的日志文件
log_slow_queries=c:/slow.log
类Unix下开启慢查询的步骤如下:
1.找系统中mysql的配置文件/ect/my.cnf
但是很多时间我们在/etc目录下并不能找到my.cnf文件,那么可以在/usr/share/mysql目录下找到一些相关的配置文件:my-huge.cnf、my-innodb-heavy-4G.cnf、my-large.cnf、my-medium.cnf、my-small.cnf,将这些配置文件中的任意一个文件拷贝到/etc目录下,并将文件名改为my.cnf。
2.在my.cnf配置文件中的[mysqld]部分添加以下代码即可
//开启慢查询
log_slow_queries = ON
//慢查询日志文件所在位置
log-slow-queries = /var/run/mysqld/slow_querys.log
//设置慢查询的时间
long_query_time = 3
//没有使用索引的SQL语句也会被记录下来
log-queries-not-using-indexes
//管理员相关的操作也会被记录下来
log-slow-admin-statements
分析慢查询日志文件
如果出现慢查询就会将慢查询的结果记录到日志文件中,呈现在日志文件中的格式如下:
# Time: 190908 14:21:40
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 5 Lock_time: 0 Rows_sent: 1 Rows_examined: 0
select sleep(5);
第一行:执行这条SQL语句的时间
第二行:客户端连接服务器的相关信息
第三行:
Query_time:查询所消耗所的时间
Lock_time:等待锁的时间
Rows_sent:表示服务器向客户发送了几条数据
Rows_examined:表示服务器端一共检索多少条记录,相当在多少行数据中进行扫描,找到我们要的数据,这个值越小越好,避免全表扫描。
select sleep(5):执行的SQL语句
今天关于“关于mysql里面的慢查询”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!