
#冲刺创作新星#mysql的日志文件 原创
本文将重点介绍MySQL的日志文件类型,并讲解其作用,并结合一定实操演示,相信跟着做下来你会对MySQL有更深的理解。
文件的概念
在开始讲MySQL日志文件之前,首先我们要明确一下文件的概念。MySQL数据库是存放在硬盘上的,用户进程通过和一个运行的MySQL实例进程通信(也就是需要一个运行的MySQL服务),通过这个服务去操作磁盘上的MySQL数据库文件,实现数据存取修改的目的,因此,我们先来看看都有哪些文件。
参数文件
MySQL登录状态下使用show variables
命令查看所有参数(key-value形式),这些参数控制着MySQL的各种状态属性。这个命令在我们需要获取MySQL的各种状态时会被高频使用到。
日志文件
错误日志(error log)
错误日志记录了MySQL的启动、运行、关闭的过程。遇到例如MySQL无法正常启动,可以查看错误日志文件。而且错误日志会记录MySQL运行过程中的警告(warning),通过查看这些警告⚠️可以针对出现警告的原因进行优化,从而达到优化数据库的目的。
慢查询日志(slow query log)
慢查询日志的作用是将运行时间超过设定值的所有SQL语句都记录到慢查询日志中,通过定期检查慢查询日志,通过定位到慢SQL语句之后,对其进行分析,是否是因为索引未生效的等原因导致查询过慢,可以对查询过慢的SQL语句进行优化。
一个和慢查询日志有关的参数是log_queries_not_using_indexes
,开启之后。如果运行的SQL没有使用索引,则MySQL数据库同样会将这条SQL语句记录到慢查询日志文件中。
查看慢查询日志的路径,以及通过linux命令查看慢查询日志内容。
除此之外,MySQL还提供了其他参数用于控制每分钟允许插入到慢查询日志中的未使用索引的SQL的语句次数(防止慢查询日志增长过快),以及提供了命令用于筛选慢查询日志中的数据,如展示执行时间最长的10条SQL等等功能,在此不多赘述,大家用到时再多作了解。
查询日志(log)
查询日志记录了所有MySQL数据库的请求信息,如论请求是否得到执行。因为有慢查询日志的存在,一般情况下对查询日志的使用依赖较小,开启后也会有一定的性能损耗,默认关闭。
二进制日志(binary log)
二进制日志记录了对MySQL数据库执行更改的所有操作(不包括select和show命令,但这些会被记录到查询日志中)。二进制日志主要作用有以下几点:
- 数据恢复:用户可以通过二进制日志进行精确的数据恢复。
- 主从复制:通过复制和执行二进制日志使得一台远程的MySQL数据库与另一台提供数据的MySQL数据库进行实时同步。
