首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:使用混合二进制日志格式读取提交的隔离级别安全吗?

MySQL:使用混合二进制日志格式读取提交的隔离级别安全吗?
EN

Database Administration用户
提问于 2016-01-10 17:10:48
回答 1查看 2K关注 0票数 8

当使用混合格式和读取提交的隔离级别时,我是否安全?

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不能再执行插入。

EN

回答 1

Database Administration用户

发布于 2023-04-11 15:34:49

根据MySQL文档:混合二进制日志记录格式

给定的存储引擎可以支持任何一种或两种日志格式。下表列出了每个引擎支持的格式。

在那一页的那句下面提到的表格里

代码语言:javascript
复制
+--------------+---------------------+----------------------------------+
|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

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/125809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档