Mysql 的主从复制,最多支持多少个数据库同步,最佳的建议是几个?

Mysql 的主从复制,最多支持多少个数据库同步,最佳的建议是几个?,第1张

主从复制理论上支持无穷大的从库个数,实际情况下,受服务器带宽和读写能力的影响

请参考mysql官方手册的建议:

理论上,通过使用单个主服务器/多从服务器设置,可以通过添加更多的从服务器来扩充系统,直到用完网络带宽,或者你的更新负载已经增长到主服务器不能处理的点。

在获得的收益开始吃平之前,为了确定可以有多少从服务器,以及可以将你的站点的性能提高多少,需要知道查询模式,并且要通过基准测试并根据经验确定一个典型的主服务器和从服务器中的读取(每秒钟读取量,或者max_reads)吞吐量和写(max_writes)吞吐量的关系。通过一个假设的带有复制的系统,本例给出了一个非常简单的计算结果。

假设系统负载包括10%的写和90%的读取,并且我们通过基准测试确定max_reads是1200 –2 × max_writes。换句话说,如果没有写 *** 作,系统每秒可以进行1,200次读取 *** 作,平均写 *** 作是平均读 *** 作所用时间的两倍,并且关系是线性的。我们假定主服务器和每个从服务器具有相同的性能,并且我们有一个主服务器和N个从服务器。那么,对于每个服务器(主服务器或从服务器),我们有:

reads = 1200 – 2 × writes

reads = 9 × writes / (N + 1) (读取是分离的, 但是写入所有服务器)

9 × writes / (N + 1) + 2 × writes = 1200

writes = 1200 / (2 + 9/(N+1))

最后的等式表明了N个从服务器的最大写 *** 作数,假设最大可能的读取速率是每分钟1,200次,读 *** 作与写 *** 作的比率是9。

如上分析可以得到下面的结论:

· 如果N = 0(这表明没有复制),系统每秒可以处理大约1200/11 = 109个写 *** 作。

· 如果N = 1,每秒得到184个写 *** 作。

· 如果N = 8,每秒得到400个写 *** 作。

· 如果N = 17,每秒得到480个写 *** 作。

1.从库太多导致复制延迟

优化:建议从库数量3-5个为宜

2.从库硬件比主库硬件差

优化:提升硬件性能

3.慢SQL语句过多

优化:SQL语句执行时间太长,需要优化SQL语句

4.主从复制的设计问题

优化:主从复制单线程,可以通过多线程IO方案解决;另外MySQL5.6.3支持多线程IO复制。

5.主从库之间的网络延迟

优化:尽量链路短,提升端口带宽

6.主库读写压力大

优化:前端加buffer和缓存。主从延迟不同步:

不管有多延迟,只要不影响业务就没事

7、业务设计缺陷导致延迟影响业务

优化:从库没有数据改读主库


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8639479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存