MySQL读写分离之主从一致性

MySQL一主多从时如何保证从库读到的数据是最新的?

等主库位点方案

  1. 主库事务更新后,马上执行show master status得到当前主库执行的File和position;
  2. 选定一个从库执行查询操作;
  3. 在从库上执行 select master_pos_wait(File, position, 1);其中1是timeout1s;该命令返回的是一个正整数,超时返回-1,错误返回NULL。
  4. 如果返回值>=0,则在从库执行查询语句; 否则,说明还没同步完成,到主库执行查询。

GTID法–数据库需要开启gtid方案

  1. 事务更新完成以后,从返回包中直接获取这个事务的GTID,记为gtid1;
  2. 选定一个从库执行查询操作;
  3. 在从库上执行select wait_for_executed_gtid_set(gtid1, 1);
  4. 如果返回值是0,则说明同步完成,否则到主库执行查询;

猜你喜欢

转载自blog.csdn.net/weixin_40735752/article/details/88074704
今日推荐