面试题答案
一键面试实现机制区别
- 逻辑复制:
- 基于数据库的逻辑日志(如 WAL 日志中的逻辑记录)进行复制。它解析 WAL 日志中的逻辑更改信息,例如 INSERT、UPDATE、DELETE 等 SQL 语句相关的信息。
- 以逻辑对象(如表、行等)为单位进行复制。可以选择只复制特定的表或部分数据,具有较高的灵活性。
- 物理复制:
- 基于数据库物理层面的 WAL 日志记录进行复制。直接复制 WAL 日志的物理块,并不关心日志内容所代表的具体逻辑操作。
- 以 WAL 日志的物理块为单位进行传输和应用,复制的是整个数据库的物理状态,包括所有的数据文件、控制文件等相关物理信息。
对性能表现的影响
- 逻辑复制:
- 优点:由于可以选择性地复制特定表或部分数据,在只需要复制少量数据或特定业务数据时,网络传输量相对较小,对网络带宽要求较低。同时,逻辑复制的应用层可以进行一些自定义处理,比如数据过滤、转换等,在复杂业务场景下有较好的适应性,不会对源库性能造成过大影响。
- 缺点:解析逻辑日志以及进行逻辑操作应用的过程相对复杂,需要消耗更多的 CPU 资源。而且在处理大量数据时,由于逻辑操作的解析和应用,可能会产生较大的延迟。
- 物理复制:
- 优点:直接复制物理日志块,不需要复杂的解析过程,复制速度快,能快速将源库的物理状态同步到备库,适用于对数据一致性和实时性要求极高的场景,在高并发写入场景下,性能优势明显,因为不需要额外的逻辑解析开销。
- 缺点:由于是整体物理状态的复制,无法选择部分数据进行复制,对网络带宽要求较高,因为需要传输整个 WAL 日志的物理块。并且在应用 WAL 日志时,不能对数据进行过滤或转换等自定义处理,灵活性较差。