该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:MySQL的binlog有几种录入格式?分别有什么区别
MySQL的binlog(二进制日志)是用于记录数据库的更改操作的一种机制,它可以用于数据恢复、数据复制和数据同步等场景。MySQL的binlog有三种主要的录入格式,分别是Statement格式、Row格式和Mixed格式。
-
Statement格式:
Statement格式是最早引入的一种binlog录入格式,它记录了执行每个SQL语句的完整内容。当在从服务器上执行binlog时,从服务器会重新执行和主服务器相同的SQL语句来实现数据同步。这种格式的优点是记录量相对较小,适用于非事务型的应用。然而,它也存在一些问题,例如在某些情况下,由于难以保证主从服务器之间执行的顺序一致性,可能会导致数据不一致。 -
Row格式:
Row格式是一种更为详细的录入格式,它记录了每一行数据的变化情况。当在从服务器上执行binlog时,从服务器会将主服务器上的数据直接复制到从服务器上,而不是重新执行SQL语句。这种格式的优点是能够确保数据的一致性,但缺点是录入量相对较大,适用于事务型的应用,尤其是对于更新较小但更新频繁的表。 -
Mixed格式:
Mixed格式是Statement格式和Row格式的混合使用。MySQL