MySQL事务的隔离级别和日志记录模式选择

u RC与 MIXED配置组合事务安全性:结合InnoDB提供的MVCC功能,可以做到只看见已经提交事务修改后的数据,但是无法确保同一事务内

导读:

MySQL的四种事务隔离级别:Read-uncommitted、Read-committed、Repeatable-read、Seriailizable,相信大家都清楚各自异同,不清楚的朋友可以查看另外一篇技术文章:MySQL_InnoDB之事务与锁详解。但是对于第二类、第三类隔离级别之间的性能区别和应用场景就会容易出现一些理解上的偏差,尤其是熟悉Oracle的技术朋友,为此专门撰写一篇技术文章,引导大家合理地选择这两种事务隔离级别。

测试环境及名词解释:

操作系统:CentOS release 5.5 (Final)

MySQL版本:5.1.40-community-log

InnoDB版本:build-in

测试的事务隔离级别:Read-committed(以下简称:RC)、Repeatable-read(以下简称:RR)

日志登记选项(简称:LBO):STATEMENT-based logging(简称:LBS)、

ROW-based format(简称:LBR)

基于日志复制模式(简称:RBO):STATEMENT、ROW、MIXED

事务隔离级别和日志模式组合的分析和总结:

n 事务隔离级别为:Read-committed(简称:RC)

事务安全性:不支持对InnoDB引擎表作DML(DML指:INSERT、UPDATE、DELETE),但是允许对非事务引擎表的数据进行一切操作;

事务性能:不支持对事务引擎InnoDB表进行操作;

u RC与 STATEMENT配置组合

日志记录格式:所有的变更操作都以基于命令方式登记二进制日志(简称:LBS);

复制安全性:对于SQL语句中,若存在不确定性的函数,,则数据复制存在一致性;

IO量:无增加;

linux