AWS RDS MySQL只读副本运行不相关的查询

时间:2014-07-02 20:10:34

标签: mysql amazon-web-services amazon-rds

我最近在Amazon RDS上成功设置了只读副本。尽管副本延迟似乎很大(通常> 60秒),但它一切运行良好。通过监视进程,似乎主/主DB上的所有UPDATE命令随后在副本/从属上执行。

这似乎令人惊讶,因为系统知道受影响的行数(在主服务器上),所以我假设它没有传递任何没有改变任何东西的查询。但是,即使这些也是在奴隶上执行的。

为什么这会和(如何)阻止这种情况发生?

1 个答案:

答案 0 :(得分:2)

确定查询是相关的还是不相关的需要一点点智能;据说,影响/影响MASTER的所有查询都必须达到Read-Replica。

创建一个系统来确定从MASTER发送到Read-Replica要跳过哪个查询非常困难(恕我直言),因为

UPDATE students SET SCORE = 100 WHERE student_id = 100可能会返回 0 row(s) affected

并且TRUNCATE TABLE student 将始终 返回 0 row(s) affected

因此,底线所有由MASTER处理的查询都应该再次处理Read-Replicas。