MySQL主从配置中,忽略数据量大的表
Posted
技术标签:
【中文标题】MySQL主从配置中,忽略数据量大的表【英文标题】:In MySQL master-slave configuration, ignoring tables with a large amount of data 【发布时间】:2021-11-03 23:12:55 【问题描述】:在mysql主从同步中,由于slave的性能问题,我们配置了忽略表。但是,既然配置是在slave上配置的,那么当host大量写入数据时,数据会不会先同步到slave再被slave过滤呢?事实上,如果忽略表配置,性能提升会很小吗?还是说当这个数据写入主机时,读取了从机的忽略表信息?不会发生数据传输,这样可以大大减轻slave的负载吗?毕竟我配置ignore table是为了避免slave的性能问题。如果写入的数据量很大,slave就承载不了。
【问题讨论】:
你的瓶颈是什么? 【参考方案1】:-
创建一个新数据库;我会叫它
NoRepl
将binlog-ignore-db=NoRepl
放在主节点上。
将该大表移入数据库NoRepl
。
这样,过滤将更快发生 - 因此不会阻塞副本或主节点的二进制日志中的复制。
如果您正在使用 Primary-Primary,或者您有另一个 确实希望查看此表的 Replica,那么我的建议将不起作用。
【讨论】:
您的解决方案适用于那些新建的数据库。我可能无法这样做,因为业务数据不断地写入我在线数据库中的主数据库。该方案不停机维护是无法实现的。 @mxg89 - 这将是一个短暂的关闭。当暴风雨来袭并切断电源或网络连接时,您会怎么做? 如果数据库只是一个数据库,你的方案很棒。但是我的在线数据库中的许多程序都在调用。如果你想改变它,风险太大了。前端和后端开发者可能无法实现此功能。以上是关于MySQL主从配置中,忽略数据量大的表的主要内容,如果未能解决你的问题,请参考以下文章
Docker Mysql5.7 + Mycat1.6.7.1主从复制读写分离+水平分库分表配置
Docker Mysql5.7 + Mycat1.6.7.1主从复制读写分离+水平分库分表配置