码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL 8.0 架构 之 慢查询日志(Slow query log)(2)流程图:查询记录到慢查询日志中的条件


    文章目录

    • MySQL 8.0 架构 之 慢查询日志(Slow query log)(2)流程图:查询记录到慢查询日志中的条件
      • 确定查询是否会记录在慢查询日志中的流程图
      • 参考

    【声明】文章仅供学习交流,观点代表个人,与任何公司无关。
    来源|Walt@SQL和数据库技术(ID:SQLplusDB)

    MySQL 8.0 OCP (1Z0-908) 考点概要

    MySQL 8.0 OCP (1Z0-908) 考点精析-安装与配置考点1:设置系统变量
    【MySQL】控制MySQL优化器行为方法之optimizer_switch系统变量
    【MySQL】MySQL系统变量(system variables)列表(mysqld --verbose --help的结果例)
    【MySQL】MySQL系统变量(system variables)列表(SHOW VARIABLES 的结果例)
    MySQL 8.0 OCP (1Z0-908) 考点精析-备份与恢复考点1:MySQL Enterprise Backup概要

    MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图
    MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点2:系统变量的确认

    MySQL 8.0 性能优化之 EXPLAIN ANALYZE
    MySQL 8.0 性能优化之 慢速查询日志(slow query log)
    MySQL 8.0 性能优化之 表连接算法(join algorithm)
    MySQL 8.0 性能优化之 MySQL Enterprise Monitor之Query Analyzer

    MySQL 8.0 架构 之数据字典(Data Dictionary)

    MySQL 8.0 InnoDB Tablespaces之System Tablespace(系统表空间)
    MySQL 8.0 InnoDB Tablespaces之File-per-table tablespaces(单独表空间)
    MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)
    MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)
    MySQL 8.0 InnoDB Tablespaces之Undo Tablespaces(UNDO表空间)

    【MySQL】在数据目录之外创建InnoDB 表(Creating Tables Externally)

    MySQL 8.0 InnoDB 架构之 日志缓冲区(Log Buffer)和重做日志(Redo Log)

    MySQL 8.0 架构 之错误日志文件(Error Log)(1)
    MySQL 8.0 架构 之错误日志文件(Error Log)(2)
    MySQL 8.0 架构 之 通用查询日志(General Query Log)
    MySQL 8.0 架构 之 二进制日志文件(Binary log)
    MySQL 8.0 架构 之 慢查询日志(Slow query log)

    MySQL 8.0 架构 之 慢查询日志(Slow query log)(2)流程图:查询记录到慢查询日志中的条件

    MySQL中有多种类型的日志文件,这些日志可用于故障排除、性能调整和审计等目的,帮助找出正在发生的活动。

    常见的日志文件包括:

    日志类型写入日志的信息
    错误日志(Error log)启动、运行或停止mysqld时遇到的问题
    二进制日志(Binary log)更改数据的语句(也用于复制)
    中继日志(Relay log)从复制源服务器接收到的数据更改
    通用查询日志(General query log)已建立的客户端连接和从客户端接收到的语句
    慢查询日志(Slow query log)执行时间超过long_query_time秒的查询
    DDL日志(元数据日志)(DDL log)DDL语句执行的元数据操作

    确定查询是否会记录在慢查询日志中的流程图

    我们在下面的文章中介绍了慢速查询日志(slow query log)使用和参数等内容。

    MySQL 8.0 架构 之 慢查询日志(Slow query log)

    下面是我根据《MySQL 8 Query Performance Tuning》:Figure 9-1. Flowchart to determine whether a query is logged to the slow log一书的内容进行了部分扩展,用于确定SQL查询是否会被记录到慢查询日志中的简化流程图:

    在这里插入图片描述
    对于查询记录到慢查询日志中的条件,简化的流程如下:

    1. 确认slow_query_log参数是否启用了慢查询日志
    2. 判断SQL的查询类型
    3. 对于管理语句(例如 ALTER TABLE、ANALYZE TABLE、CHECK TABLE、CREATE INDEX、DROP INDEX、OPTIMIZE TABLE、 REPAIR TABLE),确认log_slow_admin_statements参数的设置。
      3.1 如果参数为禁用(OFF),则不记录到慢查询日志
      3.2 如果参数为启用(ON),则进行SQL的执行时间和时间阀值(long_query_time)比较,当小于等于这个时间阀值时不记录到慢查询日志;当执行时间大于时间阀值,进行3.4的判断。
      3.4 SQL语句执行扫描的行数和最小返回行数参数(min_examined_row_limit)进行比较,如果SQL语句执行扫描的行数小于这个参数设置,则不记录到慢查询日志。如果大于参数设置,则记录到慢日志中。
    4. 对于复制相关的语句,确认log_slow_replica_statements (版本>=8.0.26)或者log_slow_slave_statements (版本<8.0.26)参数的设置。
      4.1 如果参数为禁用(OFF),则不记录到慢查询日志
      4.2 如果参数为启用(ON),确认log_queries_not_using_indexes的设置,如果启用判断是否进行了全表扫描,如果SQL语句的执行计划为进行全表扫描,则进行4.4,否则进行4.3的判断。
      4.3 进行SQL的执行时间和时间阀值(long_query_time)比较,当小于等于这个时间阀值时不记录到慢查询日志;当执行时间大于时间阀值,进行4.4的判断。
      4.4 SQL语句执行扫描的行数和最小返回行数参数(min_examined_row_limit)进行比较,如果SQL语句执行扫描的行数小于这个参数设置,则不记录到慢查询日志。如果大于参数设置,则记录到慢日志中。
    5. 对于普通查询语句,首先确认log_queries_not_using_indexes的设置,如果启用判断是否进行了全表扫描,如果SQL语句的执行计划为进行全表扫描,则进行5.1,否则进行5.2的判断。
      5.1 进行SQL的执行时间和时间阀值(long_query_time)比较,当小于等于这个时间阀值时不记录到慢查询日志;当执行时间大于时间阀值,进行4.4的判断。
      5.2 SQL语句执行扫描的行数和最小返回行数参数(min_examined_row_limit)进行比较,如果SQL语句执行扫描的行数小于这个参数设置,则不记录到慢查询日志。如果大于参数设置,则记录到慢日志中。

    参考

    《MySQL 8 Query Performance Tuning》:Figure 9-1. Flowchart to determine whether a query is logged to the slow log
    7.4.5 The Slow Query Log
    https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html

  • 相关阅读:
    [附源码]Python计算机毕业设计Django校园快递柜存取件系统
    [附源码]计算机毕业设计Springboot电影推荐网站
    关于#amesim#的问题,如何解决?
    ModSecurity开源WAF防火墙和控制面板安装教程
    C语言学习-数组应用-扫雷(4.2)
    repmgr管理pg高可用
    YOLOv5源码中的参数超详细解析(3)— 训练部分(train.py)| 模型训练调参
    RabbitMQ Demo
    软件测试之Web测试流程和方法
    【爬虫实战】用pyhon爬百度故事会专栏
  • 原文地址:https://blog.csdn.net/lukeUnique/article/details/136565598
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号