同福

master_info_repository和relay_log_info_repository设置FILE和TABLE的区别【20210804】

介绍

介绍

福哥在配置MySQL的复制同步的功能的时候,发现这个同步数据的日志是存储在文件里面的,如果数据更新频次非常高的话,对磁盘性能是一个考验~~

原因

默认情况下master状态信息和slave状态信息都是以文件形式存储起来的,可以通过如下的方法查看。

show variables like '%info_repository';

home/topic/2021/0804/18/eba4a1b68ab97aba4650d79f57be19b6.png

解决

使用数据表TABLE代替文件FILE可以在一定程度上提高性能。

my.cnf

配置文件里面增加这两行

master_info_repository=TABLE
relay_log_info_repository=TABLE

确认

查看系统配置参数。

home/topic/2021/0804/18/c0c2980e09dc48ad6a78239867e0388d.png

到mysql系统库里面去查看日志信息。

home/topic/2021/0804/18/9ff121b1b1973a08d3f68dfec04b530a.png

其中slave_master_info是本地下载的master的同步数据,包括文件、位置等等,而slave_relay_log_info是本地已同步的数据,包括文件、位置等等。

slave_master_info

这是一个slave_master_info的示例。

home/topic/2021/0804/18/cb393b3fe80c0b785e97a3750e4e37a1.png

slave_relay_log_info

这是一个slave_relay_log_info的示例。

home/topic/2021/0804/18/fc61445a8e60d2d184cb24c9ea6534bf.png

总结

今天福哥带着童鞋们针对MySQL的master_info_repository和relay_log_info_repository的设置参数进行了一个了解,相比较之下,很显然的TABLE要比FILE性能更好。