mysql 8.0~MGR多成员读一致性

时间:2021-07-23 21:44:08

一 背景:当在读节点多成员查询时可能导致数据不一致

二 三种场景
   1 读多写少  AFTER
   2 读写相当  AFTER_AND_BEFORE
   3 读少写多  BEFORE
三 数据不一致影响因素
    在单主模式下,影响单主的只能是binlog的并行回放速度
    这里会衍生出两个数据不一致问题
    1 从库本身应用事务导致的读不一致问题 (数据的最新性)
    2 从库与其他从库的应用binlog速度导致数据不一致问题 (数据的一致性)
四 8.0.14参数 group_replication_consistenc
   1 VALUE值
     before RW事务在应用之前等待所有前面的事务完成,RO事务在执行之前等待所有前面的事务完成.保证数据的最新有效性
    after RW事物在每个成员都执行完成才会进行,保住每个成员的应用进度统一,数据的一致性
    before and after 1 所有之前的事务在被应用之前完成 2 直到它的更改被应用于其他成员 就是之前两者的结合
    before_on_primary_failover 此参数代表在发生故障转移时,新查询会被阻塞,直到之前的事务处理完成
  2 须知
   1 变量本身分为session级别和global级别
   2 默认情况下参数并不生效
五 本文资料来源于3306π社区和官网文档,结合自己理解写出的,并不保证正确,随时可能会修改