tencent cloud

文档反馈

binlog 写入优化

最后更新时间:2024-11-13 21:30:30

    功能介绍

    在 row 模式下,单个语句更新多行的大事务每行会生成1个 event,会产生大量 binlog,导致数据库性能下降。腾讯云内核团队通过对大事务场景的分析和优化,开发了该能力,binlog 写入优化功能将自动识别大事务,并将 row 模式的 binlog 转化为 statement 格式的 binlog,并支持使用正则表达式设置生效的库表,从而减少 binlog 并提升数据库的使用性能。

    支持版本

    内核版本 TDSQL-C MySQL 版8.0 3.1.12及以上。

    适用场景

    该功能主要提升 row 模式下无主键表的大事务回放速度,在确定是由无主键回放慢导致延迟时可以打开。

    使用说明

    binlog 写入优化功能是基于 SQL 历史执行的统计情况去判断它是否有可能是大事务;当识别为大事务时并且有可能被优化时,会自动将它的隔离级别提升至 RR(可重复读)的级别,将 binlog 落成 Statement 格式。
    txsql_optimize_large_trans_binlog_mode 为该功能的开关。
    当 txsql_optimize_large_trans_binlog_mode 设置为 PART 时,只对满足 txsql_optimize_large_trans_binlog_tables 设置的正则表达式的表生效。例如:
    set global txsql_optimize_large_trans_binlog_tables = "test.t3,test.t4";
    set global txsql_optimize_large_trans_binlog_tables = "test.t*";
    set global txsql_optimize_large_trans_binlog_tables = "somedb*.t1";
    

    参数说明

    名称
    是否全局
    类型
    默认
    取值范围
    说明
    txsql_optimize_large_trans_binlog_mode
    全局
    enum
    OFF
    OFF/ALL/PART
    binlog 写入优化的开关,ALL 表示对所有表生效大事务 binlog 优化,PART 表示对正则生效,OFF 表示关闭功能。
    txsql_optimize_large_trans_binlog_tables
    全局
    char
    *.*
    -
    *.* 指 PART 模式下指定 dbname.tablename。
    dbname 和 tablename 均支持正则,如"somedb.t1",表示库 somedb 和 表 t1均支持正则。
    若设置为 test.*,则表示 test 库下的所有表均支持正则,包括设置后新增到 test 库的表。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持