MySQL 开启慢查询日志的方法
作者:雪豹Python+linux 发布时间:2024-01-20 13:41:05
1.1 简介
开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。
1.2 登录数据库查看
[root@localhost lib]# mysql –uroot
因为没有设置设置密码,有密码的在 mysql –uroot –p 接密码
1.2.1 进入MySql 查询是否开了慢查询
mysql> show variables like 'slow_query%';
+---------------------+--------------------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /application/mysql/data/localhost-slow.log |
+---------------------+--------------------------------------------+
2 rows in set (0.00 sec)
参数说明:
slow_query_log 慢查询开启状态 OFF 未开启 ON 为开启
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
1.2.2 查看慢查询超时时间
mysql> show variables like 'long%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
long_query_time 查询超过多少秒才记录 默认10秒 修改为1秒
1.3 修改方法1:(不推荐)
方法一:优点临时开启慢查询,不需要重启数据库 缺点:MySql 重启慢查询失效
推荐:根据业务需求,建议使用第二种,临时可以用第一种
默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启,如下所示::是否开启慢查询日志,1表示开启,0表示关闭。
1.3.1 查看是否开启慢查询
mysql> show variables like '%slow_query_log%';
+---------------------+--------------------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /application/mysql/data/localhost-slow.log |
+---------------------+--------------------------------------------+
2 rows in set (0.01 sec)
输入 语句修改(重启后失效,建议在/etc/my.cnf中修改永久生效)
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.11 sec)
1.3.2 再次查看
mysql> show variables like '%slow_query_log%';
+---------------------+--------------------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /application/mysql/data/localhost-slow.log |
+---------------------+--------------------------------------------+
2 rows in set (0.00 sec)
1.4 修改方法2:(推荐)
修改 MySql 慢查询,好多人不知道my.cnf 路径,可以用 find 查找
备注:我的MySQL 是编译的 路径为 /etc/my.cnf (一般都是这里)
[root@localhost log]# find / -type f -name "my.cnf"
/application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf
/application/mysql-5.5.51/mysql-test/suite/federated/my.cnf
/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf
/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf
/etc/my.cnf ###(一般都是这里)
1.4.1.1 修改
[root@localhost log]# vim /etc/my.cnf
找到 [mysqld] 下面添加
slow_query_log =1
slow_query_log_file=/application/mysql/data/localhost-slow.log
long_query_time = 1
参数说明:
slow_query_log 慢查询开启状态 1 为开启
slow_query_log_file 慢查询日志存放的位置
long_query_time 查询超过多少秒才记录 默认10秒 修改为1秒
修改完重启MySQL
1.5 查看、测试
1.5.1.1 插入一条测试慢查询
mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
| 0 |
+----------+
1 row in set (2.00 sec)
1.5.1.2 查看慢查询日志
[root@localhost data]# cat /application/mysql/data/localhost-slow.log
/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
# Time: 170605 6:37:00
# User@Host: root[root] @ localhost []
# Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1496615820;
select sleep(2);
1.5.1.3 通过MySQL命令查看有多少慢查询
mysql> show global status like '%Slow_queries%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries | 1 |
+---------------+-------+
1 row in set (0.00 sec)
1.6 日志分析工具mysqldumpslow
在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow
来源:http://www.cnblogs.com/python2017linux/p/6942588.html?utm_source=tuicool&utm_medium=referral
猜你喜欢
- 每个产品诞生的背后都凝结着一位或是多位设计师的心血,在产品的诞生过程中文化、科技、环保、创意等这些方方面面的细节集结成一个绚丽的故事,因为有
- 一个很棒的 blog 文章,是 PPK 两年前写的,文章中解释了 contains() 和 compareDocumentPosition(
- 1、如何使用描述符对实例属性做类型检查?实际案例:在某项目中,我们实现了一些类,并希望能像静态类型语言那样(C,C++,Java)对它们的实
- 基本类型转换python3与python2通用函数:int('123456',10) # 转换为指定进制的整数hex(123
- 1、引言小 * 丝:鱼哥,最近有点不像话了。小鱼:嗯?? 啥个意思嘛~小 * 丝:一周了,没分享小知识了。小鱼:就因为这个??小 * 丝:那是,我这么爱
- 本文实例为大家分享了python使用KNN算法识别手写数字的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-
- 手写数字识别(小白入门)今早刚刚上了节实验课,关于逻辑回归,所以手有点刺挠就想发个博客,作为刚刚入门的小白,看到代码运行成功就有点小激动,这
- 爬虫库使用简单的requests库,这是一个阻塞的库,速度比较慢。解析使用XPATH表达式总体采用类的形式多线程使用concurrent.f
- 前言原理:Windows逆向,通过内联汇编的形式调用发消息的函数下面的代码PC微信版本是:3.7.0.26 , python使用的32位的3
- 首先,需要获取任意知乎的问题,只需要你输入问题的ID,就可以获取相关的页面信息,比如最重要的合计有多少人回答问题。问题ID为如下标红数字编写
- mock简介mock原是python的第三方库python3以后mock模块已经整合到了unittest测试框架中,不用再单独安装Mock这
- 搜索答案搜索不到,自己试了一把.首先生成一维数组a =np.array([1,2,3,4,5,6,7,8,9])>>> p
- 为什么使用三方支付? 再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账),特别的不方便,为了解决这些问题,就有了三
- 百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同,都是通过查看源码扣出关键数据,然后将其存储到本地txt文件。项目内容:用Python写的百度
- 当服务器必须提供与两个或更多个网络或网络子网的连接时,典型的方案是使用多宿主计算机。此计算机通常位于外围网络(也称为 DMZ、外围安全区域或
- 【eval()函数】JavaScript有许多小窍门来使编程更加容易。其中之一就是eval()函数,这个函数可以把一个字符串当作一个Java
- PyQt5不规则窗口实现动画效果实例import sysfrom PyQt5.QtCore import *from PyQt5.QtGui
- 踩坑记录:用pandas来做csv的缺失值处理时候发现奇怪BUG,就是excel打开csv文件,明明有的格子没有任何东西,当然,我就想到用p
- 请问如何用OleDbDataAdapter来对数据库进行删除、修改和添加?OleDbDataAdapter是DataSet和数据源之间建立联
- 本文主要给大家介绍了关于webpack中publicPath路径问题的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:output: