当前位置: 首页 > news >正文

MySQL 中各种日志简介

MySQL 日志

慢查询日志(Slow query log)

  • 慢查询⽇志由执⾏时间超过系统变量 long_query_time 指定的秒数的SQL语句组成,并且检
    查的⾏数⼤于系统变量 min_examined_row_limit 指定值。被记录的慢查询需要进⾏优化,
    可以使⽤mysqldumpslow客⼾端程序对慢⽇志进⾏分析汇总。
  • 获取初始锁的时间不计⼊执⾏时间,mysqld在执⾏完SQL语句并释放所有锁后才将符合条件的语
    句写⼊慢速查询⽇志,因此⽇志顺序可能与执⾏顺序不同。

慢查询日志的参数

  • long_query_time 的默认值是10,最小值是0;
  • 默认情况下,不记录管理语句,也不记录不使用索引的查询
  • 默认为关闭(不开启),要启⽤慢查询⽇志可以使⽤:请使用 –slow_query_log[={0|1}]
  • 默认日志名为host_name-slow.log,可以使用slow_query_log_file=file_name修改
  • 使用 –log-short-format 选项,以简要格式记录慢查询⽇志
  • 要记录管理语句,启⽤ log_slow_admin_statements 系统变量。管理语句包括 ALTER
    TABLEANALYZE TABLECHECK TABLECREATE INDEXDROP INDEX
    OPTIMIZE TABLEREPAIR TABLE
  • 要记录不使⽤索引的查询,启⽤ log_queries_not_using_indexes 系统变量。当记录不使
    ⽤索引的查询时,⽇志会快速增长,通过设置系统变量
    log_throttle_queries_not_using_indexes 限制每分钟写⼊慢查询⽇志同类查询的数
    量,默认值是0,表示无限制。

二进制日志(Binary log)

  • Linux下默认开启

  • ⼆进制⽇志包含数据库更改的"事件",不会记录 SELECT 和 SHOW ,例如:记录表的创建操作或

    表数据的更改,⼆进制⽇志还包含每个语句更新数据时花费的时间信息,启动⼆进制⽇志,对服务

    器性能稍微有些影响;

  • 除了基于⾏的⽇志模式,它还包含可能进⾏更改数据的语句事件,例如 DELETE 操作没有匹配到
    查找到的⾏;

  • ⼆进制⽇志的作用:

主从节点数据复制:从节点服务器读取主节点服务器上的⼆进制⽇志⽂件,并根据⼆进制⽇志
中记录的事件在从节点上执⾏相同的操作,保证主从节点服务器上数据⼀致,实现数据复制功
能。在主从复制专题中我们重点讲解复制过程;
数据恢复:从某个时间点恢复备份数据后,将重新执⾏备份时间点之后记录在⼆进制⽇志中的
事件。这些事件使数据库从备份点更新到当前最新状态

  • ⼆进制⽇志的语句中如果涉及⽤⼾的密码,则由服务器进⾏加密,不会以纯⽂本形式出现。

错误⽇志(Error log)

  • 主要记录MySQL服务器在启动、运行过程中发生的错误和异常情况。
  • 错误日志功能是默认开启的,且无法被禁止。

⼀般查询⽇志(General query log)

  • 记录客户端连接到MySQL服务器的时间、用户、主机等信息。
  • 记录客户端提交的所有SQL语句,包括数据的增删改查等操作。
  • 在MySQL数据库中,一般查询日志功能默认是关闭的。

中继日志(Relay Log)

  • 中继日志在从服务器上记录主服务器上的二进制日志(Binary Log)事件。
  • 从服务器通过读取和执行中继日志中的事件,实现与主服务器的数据同步。
  • 默认关闭

DDL日志(Data Definition Language)

  • 用于记录数据定义语言操作的日志。DDL操作用于管理、维护和修改数据库对象的结构,

    例如创建和修改数据表、视图、索引和存储过程等。

  • 默认关闭

回滚日志/撤销日志(undo log)

  • InnoDB存储引擎用来撤销SQL操作的一种日志。当一条写入类型的SQL语句执行时,都会记录Undo Log。

  • 事务回滚:当事务出现错误或需要主动执行回滚操作时,InnoDB使用Undo Log将事务的操作撤销,

    使数据库恢复到事务开始之前的状态。

  • MVCC(多版本并发控制):在并发场景下,InnoDB通过Undo Log支持MVCC,允许多个事务并发执行而不会互相阻塞。

    Undo Log保存了数据的多个版本,事务可以根据隔离级别读取适当的版本,而不是总是最新的数据。

重做日志(redo log)

  • Redo Log记录了对数据库所做的物理修改操作,这些修改操作是在事务执行过程中产生的。

    当系统发生故障或崩溃时,可以利用Redo Log进行数据的恢复,确保事务的持久性。

http://www.lryc.cn/news/538926.html

相关文章:

  • 【每日论文】Text-guided Sparse Voxel Pruning for Efficient 3D Visual Grounding
  • Kylin server v10部署docker
  • 计算机之就业主流岗(Mainstream Computer Employment Positions)
  • DeepSeek 助力 Vue 开发:打造丝滑的日期选择器(Date Picker),未使用第三方插件
  • 【Mac技巧】添加DNS解析到hosts文件
  • 【批判性思维有什么用?】
  • Golang学习笔记_34——组合模式
  • 以太网详解(八)传输层协议:TCP/UDP 协议
  • 基于Spark抖音评论舆情分析系统
  • JAVA系列之数组的秘密(数组的一般用法+力扣 斯坦福大学练习精解)
  • 探索飞鹤奶粉奥秘,领会科技魅力
  • 【数据仓库】StarRocks docker部署
  • Java虚拟机面试题:内存管理(下)
  • R语言用逻辑回归贝叶斯层次对本垒打数据与心脏移植数据后验预测检验模拟推断及先验影响分析|附数据代码...
  • 网页制作02-html,css,javascript初认识のhtml的文字与段落标记
  • 【SpringBoot苍穹外卖】debugDay04
  • C++中的顺序容器(一)
  • 【复现DeepSeek-R1之Open R1实战】系列4:跑通GRPO!
  • Redis原理简述及发布订阅消息队列
  • ThreadLocal为什么会内存溢出
  • 假面与演员:到底是接口在使用类,还是类在使用接口?编程接口与物理接口的区别又是什么?
  • 数据结构——Makefile、算法、排序(2025.2.13)
  • 算法之 跳跃游戏
  • C#中的图形渲染模式
  • 二.数据治理流程架构
  • 瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
  • 扩散模型中的马尔可夫链设计演进:从DDPM到Stable Diffusion全解析
  • 通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
  • 大模型常识:什么是大模型/大语言模型/LLM
  • iOS 中使用 FFmpeg 进行音视频处理