一、UPDATE_ROWS_EVENT
(1)UPDATE_ROWS_EVENT 的作用
本Event是‘Update’語句生成的Event。主要用于記錄‘Update’語句的before_image實際數(shù)據(jù)和after_image實際數(shù)據(jù)。其中還包含table_id、映像位圖、字段數(shù)量、行數(shù)據(jù)位圖等信息。
(2)源碼重要接口(不關(guān)心源碼可以不理會)
| 主庫端 | |
|---|---|
| 初始化構(gòu)造 | Update_rows_log_event::Update_rows_log_event(THD *thd_arg, TABLE tbl_arg,const Table_id& tid,bool is_transactional,const uchar extra_row_info) |
| 數(shù)據(jù)寫入函數(shù) | Rows_log_event::do_add_row_data |
| 寫入binlog cache | Rows_log_event::write_data_header Rows_log_event::write_data_body |
| 從庫端 | |
|---|---|
| 讀取Event構(gòu)造 | Update_rows_log_event::Update_rows_log_event(const char *buf, uintevent_len,const Format_description_event *description_event) |
| 應(yīng)用 | Rows_log_event::do_apply_event |
(3)主體格式
因為本Event的格式更加復(fù)雜一些,因此我使用了更加豐富的原色來區(qū)別如下(圖10-1):