当使用混合格式和读取提交的隔离级别时,我是否安全?
docs状态(http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html#isolevel_读-提交)
如果使用读取、提交或启用innodb_locks_unsafe_for_binlog,则必须使用基于行的二进制日志记录。
在When running in MIXED logging format, the server automatically switches from statement-based to row-based logging under the following conditions列表中
。。没有提到隔离级别:http://dev.mysql.com/doc/refman/5.5/en/binary-log-mixed.html
此外,以下2006/2007年的bug讨论了如果隔离级别与不兼容的日志格式一起使用,则添加警告或错误消息。请参阅注释部分中的bug链接。
我已经测试了MySQL 5.5的组合,我没有收到任何警告。因此,我假设如果使用隔离,则使用行格式。我说的对吗?
以下说明它是安全的(在混合时将使用该行)。链接到注释中的手册(我不能发布超过2个链接)
如果您使用的是InnoDB表,并且事务隔离级别被读取、提交或读取未提交,则只能使用基于行的日志记录。可以将日志格式更改为语句,但是在运行时这样做会很快导致错误,因为InnoDB不能再执行插入。
发布于 2023-04-11 15:34:49
给定的存储引擎可以支持任何一种或两种日志格式。下表列出了每个引擎支持的格式。
在那一页的那句下面提到的表格里
+--------------+---------------------+----------------------------------+
|Storage Engine|Row Logging Supported|Statement Logging Supported |
+--------------+---------------------+----------------------------------+
|ARCHIVE |Yes |Yes |
+--------------+---------------------+----------------------------------+
|BLACKHOLE |Yes |Yes |
+--------------+---------------------+----------------------------------+
|CSV |Yes |Yes |
+--------------+---------------------+----------------------------------+
|EXAMPLE |Yes |No |
+--------------+---------------------+----------------------------------+
|FEDERATED |Yes |Yes |
+--------------+---------------------+----------------------------------+
|HEAP |Yes |Yes |
+--------------+---------------------+----------------------------------+
|InnoDB |Yes |Yes when the transaction |
| | |isolation level is REPEATABLE | <== NOTE THIS
| | |READ or SERIALIZABLE; No otherwise|
+--------------+---------------------+----------------------------------+
|MyISAM |Yes |Yes |
+--------------+---------------------+----------------------------------+
|MERGE |Yes |Yes |
+--------------+---------------------+----------------------------------+
|NDB |Yes |No |
+--------------+---------------------+----------------------------------+因此,联木_format=MIXED不支持READ COMMITTED。
https://dba.stackexchange.com/questions/125809
复制相似问题