前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何提高Mysql主从复制的效率?

如何提高Mysql主从复制的效率?

作者头像
dys
发布2018-04-03 16:42:55
1.1K0
发布2018-04-03 16:42:55
举报
文章被收录于专栏:性能与架构性能与架构

MySQL的主从复制,实际上就是Master记录自己的执行日志binlog,然后发送给Slave,Slave解析日志并执行,来实现数据复制 对于复制效率,binlog的大小是非常重要的因素,因为它涉及了I/O和网络传输 主从复制涉及到了两端:master/slave,看下这两端可以如何优化 (1)master 端 master端有2个参数可以控制 Binlog_Do_DB : 设定哪些数据库需要记录Binlog Binlog_Ignore_DB : 设定哪些数据库不要记录Binlog 这两项很重要,指定必要数据库,忽略不需要复制的数据库,可以减少binlog的大小,提高了I/O效率,加快网络传输 但这两项也同样比较危险,需要谨慎使用,因为可能会有主从数据不一致和复制出错的风险 因为MySQL判断是否须要复制某个Event,不是根据产生该Event的语句所在的数据库,而是根据执行时所在的默认数据库,也就是登录时指定的数据库,或运行“USE DATABASE”中所指定的数据库 如果执行语句中明确指定了数据库名称,而这个数据库是被指定不记录Binlog的,那么这个语句在slave中执行时就会出错 例如 garbage 库是被指定不记录日志product 库是指定要记录日志的 执行下面的语句 use product; delete from garbage.junk; delete语句会被发送给slave,但slave中没有garbage库,所以执行时报错,复制失败 (2)slave 端 slave端有6个参数可以控制 Replicate_Do_DB : 设定须要复制的数据库,多个DB用逗号分隔 Replicate_Ignore_DB : 设定可以忽略的数据库 Replicate_Do_Table : 设定须要复制的Table Replicate_Ignore_Table : 设定可以忽略的Table Replicate_Wild_Do_Table : 功能同Replicate_Do_Table,但可以带通配符来进行设置 Replicate_Wild_Ignore_Table : 功能同Replicate_Ig-nore_Table,可带通配符设置 slave端的配置优化效果要明显小于master端的,因为master端日志都写完了,日志也传过来了 但这几个参数可以帮助我们减少日志的应用量,因为设置了过滤,实际写入的sql数量变少了,slave端的复制也就加快了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档