一、WRITE_ROWS_EVENT
(1)WRITE_ROWS_EVENT 的作用
本Event是‘Insert’语句生成的Event。主要用于记录‘Insert’语句的after_image实际数据。其中还包含table_id、映像位图、字段数量、行数据位图等信息。实际上所有的DML语句虽然客户端看来是一条语句,但是Event记录的时候是以行为单位的,而且是更改一行记录一行,第14节将详细说明这种流程。
(2)源码重要接口(不关心源码可以不理会)
本Event和后面的UPDATE_ROWS_EVENT和DELETE_ROWS_EVENT都来自同一个父类Rows_log_event。
主库端 | |
---|---|
初始化构造 | Write_rows_log_event::Write_rows_log_event(THD* , TABLE* , const Table_id& table_id,bool is_transactional,const uchar* extra_row_info) |
数据写入函数 | Rows_log_event::do_add_row_data |
写入binlog cache | Rows_log_event::write_data_header Rows_log_event::write_data_body |
从库端 | |
---|---|
读取Event构造 | Write_rows_log_event(const char *buf, uint event_len,const Format_description_event *description_event) |
应用 | Rows_log_event::do_apply_event |
(3)主体格式
(图9-1):
网友评论