MariaDB 的二进制日志格式有哪些?

推荐答案

MariaDB 的二进制日志格式主要有以下三种:

  1. STATEMENT:记录 SQL 语句本身。
  2. ROW:记录每一行数据的变更。
  3. MIXED:结合了 STATEMENT 和 ROW 两种格式,根据具体情况自动选择。

本题详细解读

1. STATEMENT 格式

  • 特点:记录的是 SQL 语句本身,而不是实际的数据变更。
  • 优点:日志文件较小,占用空间少。
  • 缺点:在某些情况下,可能会导致主从复制不一致,例如使用了不确定性的函数(如 NOW()RAND() 等)。

2. ROW 格式

  • 特点:记录每一行数据的变更,而不是 SQL 语句。
  • 优点:能够确保主从复制的一致性,特别是在使用了不确定性函数的情况下。
  • 缺点:日志文件较大,占用空间多,尤其是在批量更新或删除操作时。

3. MIXED 格式

  • 特点:结合了 STATEMENT 和 ROW 两种格式,MariaDB 会根据具体情况自动选择最合适的格式。
  • 优点:在大多数情况下,能够兼顾日志文件的大小和主从复制的一致性。
  • 缺点:在某些复杂场景下,可能仍然需要手动调整日志格式。

如何选择日志格式

  • STATEMENT:适用于 SQL 语句简单且不涉及不确定性函数的场景。
  • ROW:适用于需要确保主从复制一致性的场景,特别是涉及不确定性函数或复杂 SQL 语句的情况。
  • MIXED:适用于大多数场景,能够自动平衡日志文件大小和复制一致性。

设置日志格式

可以通过以下 SQL 语句设置二进制日志格式:

或者在配置文件中设置:

查看当前日志格式

可以通过以下 SQL 语句查看当前的二进制日志格式:

纠错
反馈