Statement模式:(默认)
特点:记录SQL语句的文本内容,包括执行的上下文信息。
优点:日志量较小,节约IO,性能较好。
缺点:在某些情况下,如使用了非确定性的函数(如sleep(), last_insert_id()等),可能会导致主从复制不一致。
使用场景:适用于对复制一致性要求不高,且不使用非确定性函数的场景。
Row模式:
特点:记录每一行数据的变化,包括修改前后的数据。
优点:能够精确复制每一行数据的修改,不会出现非确定性函数导致的问题。
缺点:日志量大,占用更多的存储空间和IO资源。
使用场景:适用于对数据一致性要求高的场景,如金融系统等。
Mixed模式:
特点:根据操作的类型自动选择Statement模式或Row模式。
优点:结合了Statement模式和Row模式的优点,既能保证复制的一致性,又能保持一定的性能。
缺点:配置较为复杂,需要根据具体操作选择合适的模式。
使用场景:适用于需要平衡数据一致性和性能的场景。
评论区