浅说 MySQL 数据库日志有哪些?作用是什么?

2023-09-20 10:41:55

目录

1. MySQL 日志有哪些?

2. 各种日志分析

2.1 错误日志

2.2 二进制日志

2.3 通用查询日志

2.4 慢查询日志

2.5 中继日志

2.6 数据定义语句日志

2.7 补充点

3. 日志有什么用(优点)

4. 日志的弊端


1. MySQL 日志有哪些?

MySQL 数据库为我们提供了很多种不同类型的日志文件,用来存储不同类型的日志。主要有错误日志,二进制日志,通用查询日志,慢查询日志

在MySQL8之后,又新增了两种日志:中继日志和数据定义语句日志(简单了解)。

2. 各种日志分析

2.1 错误日志

错误日志:记录 MySQL 服务器的启动,运行或停止 MySQL 服务时出现的任何严重问题的相关信息;当数据库出现任何问题无法正常使用时,建议首先查询此日志。方便我们了解服务器的状态,从而对服务器进行维护。错误日志在数据库中是默认开启的。

2.2 二进制日志

二进制日志:记录所有DDL(数据定义语句)和DML(数据操纵语句),但不包括查询(SELECT,SHOW)语句。

此外(1)二进制日志还可以用于数据恢复,如果 MySQL 数据库发生意外停止,可以通过二进制日志文件查看用户查看用户执行了哪些操作,对数据库服务器文件做了哪些修改;然后通过二进制日志文件中的数据恢复数据库服务器;

(2)二进制日志用于主从数据同步,由于日志的延续性和时效性,主服务器可以把它的二进制日志文件传递给其他从服务器来达到数据同步的目的。

MySQL8.0版本中二进制日志在数据库中是默认开启的

MySQL 服务器中有多种格式来记录二进制日志,具体格式见下图

2.3 通用查询日志

通用查询日志:记录了客户端的所有增删改查操作语句,并且以 SQL 语句的方式记录在通用查询日志中,而二进制日志中不包含SELECT查询数据的 SQL 语句。通用查询日志是默认关闭的,需要手动开启。如果在业务比较繁忙的系统中开启通用查询日志,那么通用查询日志的文件是会非常大的。实际开发过程中可以根据需求考虑是否开启。

2.4 慢查询日志

慢查询日志:记录所有执行时间超过 long_query_time(默认是10秒,可以另外设置,最小为0) 的所有查询,并且记录了扫描记录数不小于 min_ examined_row_limit 的所有 SQL 语句的日志。通过慢查询日志可以让我们清楚的知道哪些 SQL 语句执行速度较慢,影响整体系统的性能,方便我们对 SQL 语句做优化。慢查询日志功能默认也是关闭的

2.5 中继日志

中继日志:用于主从服务器架构中,从服务器用来存放主服务器二进制日志内容的一个中间文件。从服务器通过读取中继日志的内容,来同步主服务器上的操作。

2.6 数据定义语句日志

数据定义语句日志:记录数据定义语句执行的元数据操作。

2.7 补充点

在上述六个数据库日志文件中,只有二进制日志采用的是二进制的方式存储日志信息,其余五个日志都是采用文本文件的方式存储日志信息。

3. 日志有什么用(优点)

通过上面对各个日志的简单介绍,我们大致可以从中得出一个共同的作用——通过日志文件,我们就可以知道数据库内部发生了哪些事,当数据库出现故障时,我们就可以通过日志快速定位故障原因。

4. 日志的弊端

日志功能会降低MySQL服务器的性能。因为在查询非常繁忙的数据库服务器中,如果开启了通用查询日志和慢查询日志,MySQL会花费很多时间来记录日志。

日志会占用大量磁盘空间。因为日志也是需要文件进行存贮的嘛,对于用户量大操作繁杂的数据库而言,日志文件需要的存储空间设置比数据库文件需要的存储空间还要大。

更多推荐

看完这篇 教你玩转渗透测试靶机Vulnhub——Grotesque:3.0.1

Vulnhub靶机Grotesque:3.0.1渗透测试详解Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:①:信息收集:②:漏洞发现:③:LFI漏洞利用(本地文件包含漏洞):④:SSH登入:⑤:提权:⑥:获取FLAG:Vulnhub靶机渗透总结:Vulnhub靶机介绍:vulnhub是个提供各

比特币的蒙提霍尔问题

把钱放在嘴边我们在比特币上建立了蒙提霍尔问题模拟。如果您知道概率谜题的正确答案,不仅炫耀您的数学技能,还会获得金钱奖励。它完全无需信任地在链上运行。蒙提霍尔问题蒙提霍尔问题(三门问题)是一个以蒙提霍尔命名的概率谜题,蒙提霍尔是电视节目《让我们做个交易》的原主持人。这是一个著名的反直觉统计难题,其解决方案非常荒谬,即使被

Python爬虫基础(三):使用Selenium动态加载网页

文章目录系列文章索引一、Selenium简介1、什么是selenium?2、为什么使用selenium3、安装selenium(1)谷歌浏览器驱动下载安装(2)安装selenium二、Selenium使用1、简单使用2、元素定位3、获取元素信息4、交互三、Phantomjs使用(停更)1、什么是Phantomjs2、下

BD就业复习第一天

hive1.分区分桶在Hive中,分区(Partition)和分桶(Bucketing)都是用于数据管理和查询性能优化的技术。它们有不同的用途和特点。分区(Partition):定义:分区是将数据按照某一列或多列的值划分为不同的子目录,使数据可以按照分区列的值进行组织。例如,可以根据日期将数据分为不同的分区,每个分区对

Node18.x基础使用总结(一)

Node18.x基础使用总结1、Node安装2、Buffer2.1、概念2.2、特点2.3、使用2.3.1、创建Buffer2.3.2、Buffer与字符串的转化2.3.3、Buffer的读写3、fs模块3.1、文件写入3.1.1、writeFile异步写入3.1.2、writeFileSync同步写入3.1.3、ap

相对论的应用:GPS导航

“但是数学享有盛誉还有另一个原因:正是数学为精确的自然科学提供了一定程度的安全保障,而没有数学,它们就无法实现这一点。”“就现实而言,数学定律是不确定的;就其确定而言,它们并不涉及现实。”—阿尔伯特·爱因斯坦爱因斯坦的相对论彻底改变了我们对宇宙的理解,从根本上改变了我们感知时间和空间的方式。该理论目前是当代物理学的孪生

基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(二)

目录前言总体设计系统整体结构图系统流程图运行环境模块实现1.数据预处理2.数据增强3.模型构建1)定义模型结构2)优化损失函数相关其它博客工程源代码下载其它资料下载前言本项目依赖于Keras深度学习模型,旨在对手语进行分类和实时识别。为了实现这一目标,项目结合了OpenCV库的相关算法,用于捕捉手部的位置,从而能够对视

全国职业技能大赛云计算--高职组赛题卷①(私有云)

全国职业技能大赛云计算--高职组赛题卷①(私有云)第一场次题目:OpenStack平台部署与运维任务1基础运维任务(5分)任务2OpenStack搭建任务(15分)任务3OpenStack云平台运维(15分)任务4OpenStack云平台运维开发(15分,本任务只公布考试范围,不公布赛题)需要环境私信博主!!!第一场次

基于罪名法务智能知识图谱(含码源):基于280万罪名预测、20W法务问答与法律资讯问答功能

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用CSDN平台,自主完成项目设计升级,提升自身的硬实力。专栏订阅:项目大全提升自身的硬实力[专栏详细介绍:项目设计

Linux内核源码分析 (B.3) 深入理解 Linux 物理内存分配全链路实现

Linux内核源码分析(B.3)深入理解Linux物理内存分配全链路实现文章目录Linux内核源码分析(B.3)深入理解Linux物理内存分配全链路实现@[toc]前文回顾1\.内核物理内存分配接口2.规范物理内存分配行为的掩码gfp\_mask3\.物理内存分配内核源码实现3.1内存分配行为标识掩码ALLOC\_\*

利用LSTM和TensorFlow模拟任意艺术家风格生成新歌词:完整Python实现指南

1.介绍随着深度学习技术的快速进步,我们现在可以使用各种神经网络结构来生成文本、图像甚至音乐。其中,长短期记忆网络(LSTM)是处理序列数据,如文本和时间序列数据的首选技术。在这篇文章中,我们将探讨如何使用LSTM和TensorFlow库来模拟任意艺术家的风格生成新歌词。2.LSTM网络简介长短期记忆网络(LSTM)是

热文推荐