网站首页 > 技术文章 正文
慢查询又叫长查询,简单的理解就是消耗时间比较长的查询语句
一、开启慢查询
查看慢查询是否开启的相关变量信息
查看变量信息语句的语法
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全文索引:快速查找和提高搜索效率!
- 下一篇: Mysql索引的深入理解
猜你喜欢
- 2024-11-19 MySQL常用的SQL提示
- 2024-11-19 MySQL 8.0-索引- 不可见索引(invisible indexes)
- 2024-11-19 数据库自学捷径-第七课 MySQL进阶-怎么提高搜索速度?索引
- 2024-11-19 Web端 SQL审核平台——Yearning Mysql
- 2024-11-19 MySQL性能管理及架构设计:SQL查询优化、分库分表
- 2024-11-19 深入浅出MySQL索引及优化分析,写出更高性能的SQL语句
- 2024-11-19 Linux运维面试sql语句
- 2024-11-19 图解MySQL:如何正确使用索引?
- 2024-11-19 看这篇就够了!MySQL 索引知识点超全总结
- 2024-11-19 SQL审核平台——Yearning Mysql
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)