前言
MySQL通过Binlog进行主从复制,一直是用户爱恨交加的一个实现方式。所谓爱,在于它维护容易、分析简单且架构设计可以变化多端,这在使用MySQL的过程中,可以发挥DBA的想象来解决各种各样的问题,所以受到了业界朋友的青睐。说到恨,有一个问题很是令DBA头疼,即主从复制延迟的问题。一般在问题出现时,DBA只能看着,一脸茫然,无法下手,只能静静地等着它追上来(当然也有一些方法,可以适当地提升其速度,但一般都是补救,不能将速度一下子提升几倍之多),这时DBA可能就会对它“恨铁不成钢”了吧。
行之有效的延迟优化方法
那么在延迟的时候,如何适当地提升速度呢?一般有如下这些方式。
增大从库参数innodb_buffer_pool_size的值,可以缓存更多数据,减少由于转换导致的IO压力。增大参数innodb_log_file_size_innodb_log_files_in_group的值,减少BUFFERPOOL的刷盘IO,提升写入性能。修改参数innodb_fush_method为O_DIRECT,提升写入性能(在ssd下,或者磁盘IO能力强的时候推荐使用)。如果可以的话,把从库Binlog关掉,或者关掉参数log_slave_updates。修改参数innodb_flush_logat_trx_