mysql主库更新后,从库都读到最新值

北京治疗白癜风病的医院 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/

今天的文章,其实来自真实的面试题,而且还比较有趣,所以忍不住分享出来。

直接开始吧。

我们知道,mysql数据库,为了得到更高性能,一般会读写分离,主库用于写操作,比如用于执行insert,update操作,从库用于读,也就是最常见的select操作。像下面这个图这样。

mysql读写分离

虽然主库一般用于写操作,但也是能读的。那么今天的问题来了。

主库更新后,主库都读到最新值了,从库还有可能读到旧值吗?

主库更新后,从库都读到最新值了,主库还有可能读到旧值吗?

毕竟面试官都这么问了,那当然是有可能的,那至于是为啥,以及怎么做到的,今天我们来好好聊聊。

正常的主从更新流程

比如我在主库和从库都有张user表,此时有以下两条数据。

数据库原始状态

正常情况下,我们往主库执行写操作,比如更新一条数据,执行

updateusersetage=50whereid=1;

虽然这是一个单条写操作,但本质上可以理解为单条语句的事务。等同于下面这样

begin;updateusersetage=50whereid=1;


转载请注明:http://www.aierlanlan.com/tzrz/357.html

  • 上一篇文章:
  •   
  • 下一篇文章: