Qihoo360 / Atlas

A high-performance and stable proxy for MySQL, it is developed by Qihoo's DBA and infrastructure team
GNU General Public License v2.0
4.65k stars 1.15k forks source link

读主库问题排查 #203

Open WiFeng opened 4 years ago

WiFeng commented 4 years ago

在线上配置 mysql-proxy 后,发现有 1%的 SELECT 读请求转发到了 master,但是并没有使用事务、也没有配置 auto-commit 值。

翻阅各种文档以及源码,最后发现 INSERT 后的第一条 SELECT 会转发到 master 节点上。 如下图: image

但是,仍未理解为什么 INSERT 之后要这么处理,等有时间再进一步分析。目前,如果发现部分耗时的 SQL 请求到 master 时,我们可以在 INSERT 之后强制执行一个 SELECT 1 这样的语句来绕开这个问题。