old post from wiznote

问题:

一个update 10w条,在binlog内是怎么存储的,一个event?

验证说明:

第一步:

查看文档,发现binlog的单条event是有最大限制的。

Command-Line Format --binlog-row-event-max-size=#
Permitted Values (32-bit platforms, <= 5.6.5) Type integer
Default 1024
Minimum 256
Maximum 4294967295
Permitted Values (32-bit platforms, >= 5.6.6) Type integer
Default 8192
Minimum 256
Maximum 4294967295
Permitted Values (64-bit platforms, <= 5.6.5) Type integer
Default 1024
Minimum 256
Maximum 18446744073709551615
Permitted Values (64-bit platforms, >= 5.6.6) Type integer
Default 8192
Minimum 256
Maximum 18446744073709551615

Ref:

https://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#option_mysqld_binlog-row-event-max-size

测试使用的是5.7.19,所以默认最大值是8192。

第二步:

测试流程:

上面的一条sql,更新了9999条数据,看binlog,发现存储的并不是一条event。

Untitled

index_files/46653218.png

index_files/46662533.png