面试题答案
一键面试1. Query_event
- 事件描述:记录SQL语句,除了某些特定操作(如创建临时表)外,大部分的SQL语句都会以这种类型记录。
- 应用场景:
- 数据备份:在逻辑备份中,可根据这些记录的SQL语句重新构建数据状态。
- 恢复:在基于日志的恢复(point - in - time recovery, PITR)中,通过重放
Query_event
中的SQL语句来恢复到特定时间点的数据状态。 - 主从复制:主库将
Query_event
发送到从库,从库重放这些事件来同步数据。例如执行INSERT
、UPDATE
、DELETE
等语句的事件,从库依此更新自身数据,保持与主库一致。
2. Table_map_event
- 事件描述:定义表结构映射信息,包含数据库名、表名以及表结构定义(如列数、列类型等)。
- 应用场景:
- 数据备份:有助于在恢复数据时正确识别表结构,为后续数据插入做准备。
- 恢复:在重放binlog进行恢复时,首先需要
Table_map_event
来确定要操作的表结构,以便正确处理后续的数据插入或修改事件。 - 主从复制:主库在执行对表数据操作前,先发送
Table_map_event
给从库,让从库明确即将操作的表结构,确保从库能正确重放后续数据操作事件。
3. Write_rows_event
- 事件描述:用于记录插入操作,包含表映射ID(关联
Table_map_event
)以及插入的行数据。 - 应用场景:
- 数据备份:备份过程中记录插入的数据行,以便恢复时能重新插入这些数据。
- 恢复:在恢复数据时,重放
Write_rows_event
将备份过程中记录的插入操作重新执行,将数据插入到对应的表中。 - 主从复制:主库将插入操作以
Write_rows_event
形式发送给从库,从库根据表映射ID找到对应的表,并将行数据插入,实现数据同步。
4. Update_rows_event
- 事件描述:记录更新操作,包含表映射ID、更新前的行数据和更新后的行数据。
- 应用场景:
- 数据备份:备份更新操作前后的数据,在恢复时可用于还原数据到特定更新状态。
- 恢复:恢复时,通过重放
Update_rows_event
,按照记录的更新前和更新后的数据状态,将数据更新到与备份时一致的状态。 - 主从复制:主库将更新操作事件发送给从库,从库依据表映射找到对应表,根据事件中的更新前后数据对自身数据进行更新,保持主从数据一致性。
5. Delete_rows_event
- 事件描述:记录删除操作,包含表映射ID以及要删除的行数据。
- 应用场景:
- 数据备份:记录删除操作,可用于恢复时重新执行删除,或在恢复时跳过删除操作以保留数据。
- 恢复:在恢复数据时,重放
Delete_rows_event
可删除相应的数据行,使数据状态与备份时一致。 - 主从复制:主库将删除操作以
Delete_rows_event
发送给从库,从库依据表映射找到对应表并删除指定行数据,保持主从数据同步。