0

让我们假设一个系统有一个 MySQL 主服务器和一个从服务器。

主服务器上发生了很多读写操作,我选择在从服务器上执行繁重的慢速查询。

会发生什么?主服务器会显示一些减速吗?

4

1 回答 1

0

使用复制的从服务器进行只读查询,例如报告是常见的做法。

主服务器上的复制从日志文件中读取,并且不会命中实际的数据库表。主控端的复制不执行任何查询,因此没有真正的数据库负载。

复制在主服务器上有自己的线程,当它被阻塞时,它不应该停止正常的数据库操作。

MySQL 复制能够在崩溃后完全恢复,并将自动从中断的地方恢复。

有一个警告。在 MySQL 5.5+ 中,MySQL 支持(默认关闭)半同步复制,其中主服务器上的数据库请求在从服务器确认收到事务之前不会响应客户端。如果等待从服务器响应超时,MySQL 将恢复到异步复制。当确定从站已经赶上时,它将再次尝试半同步复制。

这意味着,如果您运行的查询完全阻塞了从服务器,您可能会在主服务器上看到长达 10 秒的延迟,但在那之后,应该不会受到任何影响。您可以配置超时

此外,如果所有这些服务器共享相同的网络带宽,请考虑如果您达到带宽的最大容量,从任一服务器返回大型结果集可能会导致问题。

于 2014-03-20T17:27:10.827 回答