首页 > 数据库 >mysql开启慢查询日志

mysql开启慢查询日志

时间:2023-02-27 18:03:31浏览次数:36  
标签:slow log 查询 mysql query 日志

mysql开启慢查询日志_慢查询

前言:mysql数据库默认没有开启慢查询日志,需要我们手动去设置这个参数;

慢查询,它的主要作用是定位那些执行时间比较长的sql语句,运行时间超过long_query_time值的SQL(long_query_time默认值是10秒),则会记录到慢查询日志中,我们通过记录sql执行时间超过某个阈值的sql日志,快速定位有问题的语句,为我们sql优化做参考;

如果不是调优需要的话,生产环境一般不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能的影响。

一、开启慢查询日志

1.临时开启慢查询日志

临时开启慢查询日志,数据库重启后失效

进入数据库查询是否开启慢查询功能

[root@localhost ~]# docker exec -it mysql-test /bin/bash

bash-4.2# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

#show variables like 'slow_query%';
mysql> show variables like 'slow_query%';
+---------------------+--------------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /var/lib/mysql/ece19cd91862-slow.log |
+---------------------+--------------------------------------+
2 rows in set (0.36 sec)


mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
1 row in set (0.00 sec)



参数说明:
slow_query_log :慢查询开启的状态,ON 开启 OFF未开启
slow_query_log_file:慢查询日志存放的位置(这个目录需要mysql的运行账号的可读可写的权限,一般设置为mysql的数据存放目录)
long_query_time : 查询超过多少秒才记录

开启慢查询

mysql> set global slow_query_log=1;

Query OK, 0 rows affected (0.47 sec)

mysql> set global long_query_time=1;

Query OK, 0 rows affected (0.00 sec)

退出登录数据库再登录查看是否生效

mysql> show variables like 'slow_query_log%';

+---------------------+--------------------------------------+

| Variable_name | Value |

+---------------------+--------------------------------------+

| slow_query_log | ON |

| slow_query_log_file | /var/lib/mysql/ece19cd91862-slow.log |

+---------------------+--------------------------------------+

2 rows in set (0.00 sec)

mysql开启慢查询日志_慢查询_02

2.永久开启慢查询日志

上面已经配置临时慢查询日志的,先重启数据库,然后重新配置(测试环境)

修改my.cnf,在 [mysqld] 添加下面配置

slow_query_log=1

slow_query_log_file=/var/lib/mysql/slow-log.log

long_query_time=1

然后重新重启服务

3.慢查询日志内容解释

mysql开启慢查询日志_慢查询_03

第一行记录的是该条sql执行的时刻

第二行记录的是执行该局域的用户和ip以及链接id

第3行字段记录如下

Query_time: duration 语句执行时间,以秒为单位。

Lock_time: duration 获取锁的时间(以秒为单位)。

Rows_sent: N 发送给 Client 端的行数。

Rows_examined: N 服务器层检查的行数(不计算存储引擎内部的任何处理)。

延伸点

查询当前系统中有多少条慢查询日志记录show GLOBAL STATUS LIKE '%slow_queries%';



好好吃饭呀

标签:slow,log,查询,mysql,query,日志
From: https://blog.51cto.com/u_14045290/6088776

相关文章

  • mysql查询近N天的数据
    今天select*from表名whereto_days(时间字段名)=to_days(now());昨天SELECT*FROM表名WHERETO_DAYS(NOW())-TO_DAYS(时间字段名)<=17天SELECT*F......
  • MySQL根据经纬度和距离查询最近的数据
    [lat]:输入的纬度[lon]:输入的经度[distance]:查询距离内的数据,单位mSELECT*FROM(SELECTidlon,lat......
  • 五十条常用的MySQL语句
    1、查询“001”课程比“002”课程成绩高的所有学生的学号;selecta.S#from(selects#,scorefromSCwhereC#='001')a,(selects#,scorefromSCwhereC#='002')bwhe......
  • mysql 5.7安装方法
    下载好包解压后按下列顺序执行1.给bin目录添加到环境变量,前提:关闭所有cmd窗口2.将mysql添加到系统服务中 方法:鼠标右键任务栏选择服务方法2:cmd输入services.ms......
  • 1 后台日志封装、 2 前后端分离的rbac项目演示、 3 全局异常处理封装、 4 封装Respons
    目录1后台日志封装2前后端分离的rbac项目演示3全局异常处理封装4封装Response5luffy数据库创建5.1创建用户创建库5.2使用项目连接库6软件开发模式7User模块用户表......
  • MySQL联合索引的创建规则
    1、索引应该按照最常用于查询的列的顺序创建。这样可以最大程度地提高查询性能。2、如果查询中包含的列与索引中的列顺序不一致,则无法使用索引。因此,如果您有多个查询,每个......
  • db2 模糊查询
    今天在书写接口的时候遇到一个问题,查询接口需要模糊查询,我在百度上搜索mybatils的模糊查询不行,最后发现,mysql的模糊查询concat方法和db2的不一样。然后就找到领一种方法,使......
  • 【复盘】搭建日志平台的复盘与思考
    目录背景日志规范日志索引设计索引分片设计ILM的使用利用日志平台的数据统计总结背景20年利用ELK为公司搭建一个日志平台,但由于那时技术和视野有限,遇到的问题感觉还可以......
  • SQL SERVER 生僻字查询问题和关键字COLLATE
       先说问题,生僻字查询的问题,有的时候我们的数据里包含一些生僻字,在查询用Like模糊匹配的时候,发现有的查询不准确,测试数据如下:1--测试数据2ifnotobject_id(N'......
  • mysql分布式架构测试
    mysql分布式架构测试目录机器准备mysqlcluster介绍下载安装包通用节点执行项安装管理节点安装数据节点配置安装sql节点查看集群状态sql节点插入数据备份测试......