行事件一共有3类:TALBE_MAP_EVENT、ROWS_EVENT、ROWS_QUERY_EVENT.其中的ROWS_EVENT分为WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_ROWS_EVENT。这三种每个又分为3个版本:v0 v1 v2。行事件表明了一个数据库行是如何变化的,那么如何通过序列化的二进制数据解析出来变化的信息呢?每次发起同步的时候,My
前面几节介绍了MySQL的基本同步协议,4.1是个重要的转折,新版的在协议包数据格式方面,一般要设置CLIENT_PROTOCOL_41,并且按照设置此标志位的格式序列化与反序列化。但是4.1毕竟比较旧了,我们这次关注5.6带来的变化。1. 对事件的完整性校验5.6默认是对事件做完整性校验的,即每个事件包的最后4个字节是校验和,校验和作为事件体的一部分,算在事件长度中。并且没有在之前的包格式中定义
众所周知,MySQL的Binlog可以是三种类型:Statement、Row、Mixed。Statement的特点是每次只存储一条语句,Row的特点是存储每行数据的变化情况,Mixed是前两种的混合。于是,网上很多资料都提到,Row模式下执行单条语句可能造成很多log条目,因为改变了表的结构,比如alter table,造成了每行数据都发生了变化。实际上,这个说法是错误的! &nb
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号