首页 > 数据库 >MySQL slow log 慢日志

MySQL slow log 慢日志

时间:2022-09-26 17:57:20浏览次数:53  
标签:slow log MySQL file SQL query 日志

sql慢日志用于记录执行时间超过指定阈值的SQL,对于系统性能和故障排错非常有帮助

开启sql慢日志

--开启slow log
set @@global.slow_query_log=1;

--设置slow log文件名,默认放在数据目录下
set @@global.slow_query_log_file=slow_log;

--设置将慢日志同时记录到数据表和磁盘文件中
set @@global.log_output='TABLE,FILE';
命令 参数
slow_query_log=0|1 0为关闭,1为开启
slow_query_log_file=file_name 指定慢日志文件名,默认名字为host_name-slow.log,
如果不是绝对路径,那么默认存放在datadir目录下
log_output=table|file|none table 表示慢日志信息存放在mysql.slow_log数据表里;
file 表示慢日志信息存放在磁盘文件上,由上述slow_query_log_file指定, 不指定为file,即使设置了slow_query_log_file也是无效的;
none 表示即使开启了慢日志功能,也不会记录任何慢SQL

什么SQL会记录到慢日志里

long_query_time
该参数定义一个SQL的执行时间阈值,单位为秒,默认是10,最小值为0,可以指定0.1表示100ms。

min_examined_row_limit
该参数定义一个SQL所读取的数据行数;

log_queries_not_using_indexes
该参数决定是否记录未使用索引的SQL;

log_slow_admin_statements
该参数决定是否记录管理类的命令,有 ALTER TABLE,ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE,REPAIR TABLE,默认是不记录这一类语句到慢日志。

log_throttle_queries_not_using_indexes
该参数决定每分钟记录未使用索引的SQL的数量上限,因为未使用索引的SQL可能会非常多,导致慢日志空间增长飞快。

log_slow_slave_statements
该参数在从库上设置,决定是否记录在复制过程中超过long_query_time的SQL,如果binlog格式是row,则即使开启了该参数,也不会记录相关SQL。


SQL被记录到慢日志里,需要满足以下条件

1. 管理类语句不会记录,除非开启了log_slow_admin_statements;

2. 执行时间需要超过long_query_time,或者对于未使用索引的SQL,需要开启log_queries_not_using_indexes,并且记录数量在log_throttle_queries_not_using_indexes之下;

3. SQL需要读取数据行数超过min_examined_row_limit;

4. 从库的复制语句默认不记录,除非binlog格式是statement且开启log_slow_slave_statements。

mysql.slow_log表结构

desc mysql.slow_log;

标签:slow,log,MySQL,file,SQL,query,日志
From: https://www.cnblogs.com/linuxshare/p/16731805.html

相关文章

  • mysql 存储过程
    根据查询条件动态拼接表名#测试数据createtabletemp1(idint,namevarchar(50));createtabletemp2(idint,namevarchar(50));insertintotemp2values(2,'......
  • windows服务器部署mysql
    一、Mysql安装教程就不上传了,百度很多的很详细的。二、配置环境变量:我的电脑右键=》属性=》高级系统设置=》环境变量=》系统变量下找到Path,选中编辑,变量值后面添加 C:\P......
  • 封装日志Mylogger
    importloggingimportosfromCommon.handle_pathimportlogs_dirfromCommon.handle_configimportconfclassMyLogger(logging.Logger):def__init__(self,f......
  • MYSQL数据类型
    MYSQL数据类型介绍一、MYSQL的数据类型主要包括五大类:整数类型:BIT、BOOL、TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT浮点类型:FLOAT、DOUBLE、DECIMAL字符串类型......
  • SpringBoot+Vue体育场管理系统 体育场预约系统 体育场教练预约系统Java Vue MySQL数据
    ......
  • Nlog.config 分享
    <?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • 基于el-dialog封装全局弹窗
    dialog<template><div><el-dialogtitle="切换考试"top="9vh":modal="false"width="600px":visible.sync="dialogVisible"@close="close":append-to-body......
  • Mysql原理学习
    存储引擎数据库引擎是数据库用于存储、处理和保护数据的核心服务,不同的数据库引擎有其各自的特点,如存储机制、索引技巧、主键的处理、锁的粒度等特点便随着引擎的不同而变......
  • STS用Maven写一个登录页面 - 用MySQL验证登录用户
    上一章我们已经将MySQL和STS的连接进行了测试,下面我们就用MySQL验证登录用户是否正确。可参考:https://www.cnblogs.com/smart-zihan/p/15041013.html第一步:建立数据库接......
  • MySQL索引相关的问题
    关系型数据库相关的大部分问题,都要往如何减少IO次数以及如何减少随机IO次数上想,这也是关系数据库设计时考虑的一个目标。为什么索引使用B+树实际上不管你使用什么结构,B......