MySQL二進制日志有三種格式:Statement格式、Row格式和Mixed格式。
Statement格式:記錄的是SQL語句的原始文本。在二進制日志中,只記錄執行的SQL語句,而不記錄每一行數據的變化。由于只記錄SQL語句,因此這種格式會導致日志文件的體積相對較小。
Row格式:記錄的是每一行數據的變化,即記錄每一行數據的修改前后的內容。在二進制日志中,會記錄每一行數據的變化情況,而不管執行的SQL語句是什么。這種格式適合對行級別的變化進行跟蹤。
Mixed格式:是Statement格式和Row格式的混合使用。在Mixed格式中,MySQL會根據具體情況決定使用哪種格式,以便達到最佳性能。通常情況下,對于不影響數據行的SQL語句,使用Statement格式,對于影響數據行的SQL語句,使用Row格式。