tidb binlog 日志update和delete是否全字段?

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.12
  • 【问题描述】:tidb的日志解析在update和delete时可以拿到全字段吗?

可以在详细描述下你的需求,目前没有类似 mysql binlog row 格式记录的形式(general log 可以做到,但是对性能影响较大。)。

需求是这样的:就是cdc的功能, TiDB Binlog 的Pump和Drainer组件将tidb数据实时同步到kafka或其他组件,在这个同步过程中是不是每条传输的数据都有变化前的全字段数据和变化后的全字段数据?

TiDB Binlog 输出的 row format 会记录 update 或 delete 的 old value,TiCDC 后续也会完全兼容并替换 Binlog https://github.com/pingcap/ticdc/issues/690

目前 TiCDC 从 4.0.5 版本支持开启 enable-old-value
https://docs.pingcap.com/zh/tidb/stable/manage-ticdc#输出行变更的历史值-从-v405-版本开始引入

谢谢回复,假设table有三个字段:字段1、字段2、主键,当执行update table set 字段1=new_value where 主键=***,row format应该会记录字段1的old_value和字段1的new_value及其主键值,是否会记录该列的其他值?比如字段2。

update 会记录其他列的值

好的,谢谢

:+1: