全部产品
云市场
云游戏

读写分离

更新时间:2020-08-14 16:06:33

基本原理

在主实例的读请求较多、读压力比较大的时候,可以通过读写分离功能对读流量进行分流,减轻存储MySQL的读压力。

PolarDB-X读写分离功能是对应用透明的设计。应用在不修改任何代码的情况下,只需要在控制台中调整读权重,即可将读流量按配置的比例在私有RDS主实例与多个只读实例之间进行分流;写流量则全部到主实例,不做分流。

设置读写分离后,从私有RDS主实例读取的是强读,即实时强一致读,而只读实例上的数据是从主实例上异步复制的,存在毫秒级的延迟,因此从只读实例读取的是弱读,属于非强一致性读。个别需要实时性、强一致性读的SQL可以通过Hint指定到主实例上执行。详情请参见读写分离HINT

读写分离对事务的支持

读写分离仅对显式事务(即需要显式提交或回滚的事务)以外的读请求(即查询请求)有效,写请求和显式事务中的读请求(包括只读事务)均在主实例中执行,不会被分流到只读实例。

  • 属于读请求的常见SQL语句:SELECT、SHOW、EXPLAIN、DESCRIBE。
  • 属于写请求的常见SQL语句:INSERT、REPLACE、UPDATE、DELETE、CALL。

关于如何设置读写分离,详情请参见设置读写分离
读写分离