云数据库 RDS-MySQL主备复制延迟场景及解决方案:场景2:对无主键表更新

时间:2024-05-31 11:47:03

场景2:对无主键表更新

RDS for MySQL的Binlog采用row格式,对每一行的数据更新,都会形成row格式Binlog event记录。例如:一个update语句更新100行数据,那么row格式的Binlog中会形成100行update记录,备机或只读回放时会执行100次单行update。

只读节点和备机在回放主库的Binlog event时,会根据表的主键或者唯一二级索引来检索需要更改的行。如果对应表未创建主键,则会产生大量的全表扫描,从而降低了Binlog日志的应用速度,产生复制延迟。

排查方法:

通过show create table xxx,分析执行慢的update和delete语句对应的表,分析是否有主键。

解决方法:

给无主键表增加主键,或者酌情增加唯一二级索引。

support.huaweicloud.com/trouble-rds/rds_12_0038.html