mysql日志详解

时间:2023-12-17 09:23:32

日志分类:

一、错误日志。

1、在配置文件中的配置是:log-error="DESKTOP-igoodful.err",查看参数的键值对:show variables like 'log_error';

二、二进制日志。

1、记录了对数据库执行更改的所有操作,当然不包含select和show的操作。作用有两个:恢复和复制。

2、二进制日志开关。my.ini配置文件中的配置:log_bin=ON。二进制日志文件默认不开启。开启这个功能大概降低mysql性能的1%,但是提供了恢复和复制功能,值得。也可以直接配置log-bin这个键值对就可以开启二进制日志功能。

3、二进制日志文件名。log-bin=D:\MySQL\Data\igoodfulBinaryLog。其中D:\MySQL\Data路径为全局变量datadir的值,且该日志文件只能在datadir路径下面。这里设置的二进制文件名为igoodfulBinaryLog,服务器生成的第一个二进制日志文件为igoodfulBinaryLog.000001,以后依次递增,同时在该路径下面还会产生igoodfulBinaryLog.index文件来记录所有二进制日志文件名的全路径名。每次启动mysql服务都会生成一个二进制日志文件。如下图:

mysql日志详解

mysql日志详解

4、配置二进制日志文件的记录格式。my.ini配置文件中的配置:binlog-format=row/statement/mixed。基于行/语句/两者的混合。默认值是statement,建议mixed。statement形式则记录的是逻辑sql语句,而row则是以行记录,mixed则是两者的混合。

5、配置二进制日志文件大小的最大值。my.ini配置文件中的配置:max_binlog_size=512M。单位可以为K/M/G。查看:show variables like 'max_binlog_size';当二进制文件的大小达到这个最大值后会自动新建下一个二进制文件。限制单个二进制文件的大小。当记录的日志文件大小达到最大值后会新建一个日志文件;当重启mysql服务时也会新建一个日志;当运行flush logs也会新建一个日志文件。

mysql日志详解

6、二进制日志文件自动逾期清除功能。my.ini配置文件中的配置:expire_logs_days=2;

7、二进制日志文件的查看。mysqlbinlog  D:\MySQL\Data\igoodfulBinaryLog.000180 > a.txt

8、记录了对数据库执行更改的所有操作,当然不包含select和show的操作。

9、显示服务器的所有二进制文件名。show binary logs;

mysql日志详解

10、

三、慢查询日志。

1、慢查询开关。my.ini配置文件中的配置:slow-query-log=1。

1、慢查询时间限定。my.ini配置文件中的配置:long_query_time=10。查看参数:show variables like '%long_query_time%';

2、没有索引的SQL是否记录。my.ini配置文件中的配置:log_queries_not_using_indexes=1。查看参数:show variables like '%log_queries_not_using_indexes%'

四、查询日志。

1、记录了所有对mysql数据库请求的信息,不论这些请求的执行是否正确。

2、查询日志开关。my.ini配置文件中的配置:general-log=1。

3、查询日志文件名。my.ini配置文件中的配置:general_log_file="DESKTOP-igoodful.log"。

五、pid文件。

1、mysql服务的进程pid文件名。my.ini配置文件中的配置:pid_file=D:\MySQL\Data\igoodful.pid

六、表结构定义文件。

1、任何存储引擎中的一个表都有一个以frm结尾的表结构定义文件,该文件记录了表的结构。

mysql日志详解

七、重做日志文件。事务机制根源。

1、记录了针对innodb存储引擎的事务日志。

2、重做日志文件存放位置。my.ini配置文件中的配置为:innodb_log_group_home_dir=D:\MySQL\Data。默认值为datadir全局变量代表的路径。

2、文件名。有两个文件,分别是ib_logfile0和ib_logfile1。路径都是在datadir全局变量代表的路径。

3、重做日志文件大小。my.ini配置文件中的配置为:innodb_log_file_size=512M。如下面第5后面的图所示。

4、重做日志文件组的数量。默认为1,表示只有一个租

5、一个重做日志文件组中的重做日志文件的数量。my.ini配置文件中的配置为:innodb_log_files_in_group=3。默认值为2。如下为设置成3,表示三个文件。从0开始自增。

mysql日志详解

6、

八、表空间文件。(存放表的数据、索引、插入缓存信息、表的内部数据字典,其余信息放在默认表空间中)(针对innodb存储引擎)

1、独立表空间配置,即每个表一个独立的表空间,文件名=表名+ibd后缀,如user表,则user表的表空间文件名为user.ibd。my.ini配置文件中的配置:innodb_file_per_table=1。因此,任何一个表的信息存放在frm文件、ibd文件、ibdata1文件中。

2、innodb存储引擎有一个共享表空间文件。文件名是ibdata1。如果不设置innodb_file_per_table=1,则所有数据都会放在该文件。设置后就分担一部分数据到各自的ibd文件中去。就算启用了innodb_file_per_table=1,该文件还是不断地增加。

mysql日志详解

3、表空间结构图如下。一个表空间由分散的页和段组成,比如数据段,索引段、回滚段等,有的对象是由页组成;一个区由64个连续的页组成,一个页大小为16KB,即一个区为1M。innodb存储引擎每次最多能够申请到4个区。启用了innodb_file_per_table=1时,新建的一个表,如果不存放任何数据进去,那么该表的表空间文件(表名.ibd文件)默认大小是96K。因此空表看该文件大小是不是96K就可以判断。而在每个段开始位置处有32个页大小的碎片页来存放数据。只有当这些页使用完后才是64个连续页的申请,即1M的申请。innodb的页大小不可更改,只能是16KB大小。常见的页类型有数据页,事务数据页、系统页,undo页,插入缓冲位图页,插入缓冲空闲列表页,压缩的二进制大对象页,未压缩的二进制大对象页。行,数据库是面向行的,数据是按照按行来存储的,每一页存放的行是有限制的,最多能够存放16KB/2 - 200=7992行。一个页保存的是一行一行的记录。

mysql日志详解

4、

七、表空间文件。

七、表空间文件。

七、表空间文件。

七、表空间文件。

七、表空间文件。