首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL复制有多快?

MySQL复制有多快?
EN

Server Fault用户
提问于 2009-06-23 21:11:35
回答 3查看 11.2K关注 0票数 19

我正在考虑建立mysql db的复制,以便能够在每个分支办事处中有本地从站,而主办事处有主站,以提高分支机构的应用程序性能(显着地)。

数据库本身并不大(<1gb),但我想知道;考虑到200-300个记录更新/分钟上限:复制有多快?(假设,首先,一个5mb的通用dsl连接,如果有必要的话更快

整张表是否成批复制?复制是否按需完成,因为表中的每条记录都被更新(从文档中,我想我看到它是可配置的)吗?

备注:

  • 我想像在docs 这里中一样设置一个主程序,两个奴隶(目前有两个分支机构),只是它是一个应用程序,而不是一个web客户端。
  • 在主服务器上完成的任何更新都需要在<10分钟内复制到其他从服务器上。
  • 所有这一切都假设我可以让我们的ORM (DevExpress XPO)满意于从奴隶中读取和向主写入的概念。
EN

回答 3

Server Fault用户

回答已采纳

发布于 2009-06-23 21:54:51

MySQL复制尽可能接近实时,由于磁盘和网络I/O的限制,从服务器向主机打开一个套接字,该套接字保持打开。当一个事务发生在主程序上时,它会被记录在二进制日志中,然后简单地在奴隶上重放(S)。如果主从之间的套接字中断,则在下一次成功连接时为该从属程序重放二进制日志。

多主复制做同样的事情,但在两个方向。

一些基本的计算将帮助您更好地确定您的带宽需求。

Average transaction size * number of slaves * updates/minute = bandwidth needed

希望这能有所帮助。

票数 23
EN

Server Fault用户

发布于 2009-06-23 21:55:58

MySQL中的复制非常快,可以将数据发送给从服务器(如果(并且只有)网络连接全部启动,并且一切正常运行,则可以更快地在主服务器上运行UPDATE,并切换到另一个窗口在从服务器上运行SELECT。对于常规的小型查询来说,任何DSL类连接都应该是可以的,但是大型的insert/update查询可能需要一小段时间来进行复制,如果出现复制填充(不幸的是,MySQL很容易发生这种情况),重新同步将需要一段时间(再次从主服务器复制整个数据库)。有一些技巧可以限制重新同步对主服务器的影响,比如将MySQL放在LVM上,这样您就可以非常快速地锁定/快照,并将快照内容rsync发送给从服务器,但最终,重新同步将导致失败。

票数 4
EN

Server Fault用户

发布于 2009-06-24 02:55:12

从服务器端的复制由两个独立的线程处理。

  • 日志读取器进程连接到主进程,接收每个数据修改语句,将其写入中继日志。
  • sql编写器进程从中继日志中获取新项,提交从数据库中的语句,然后将从指针移过该语句以指示收到查询。

复制延迟受IO限制,首先是从数据库中的IO应用中继日志中的事务(这可能涉及复杂的SQL查询),其次是由主机上的IO读取它的binlog并将其传输给每个从服务器。

MySQL复制增加了读取查询容量,但并没有提高查询写入性能,这是以IO的速度设置的,可以同时刷新主日志和从日志。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/30605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档