MySQL中InnoDB存储引擎的事务隔离级别与事务处理

本文详细解析了MySQL中事务隔离级别的设置方式及不同模式下的事务行为特性,包括如何使用SET命令调整隔离级别、读已提交(READ-COMMITTED)的要求等,并阐述了autocommit模式对事务快照点的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、事务进行中,不得用set transaction命令更改隔离级别。但可以用set {global|session} transaction更改隔离级别。文档上说set transaction可以改变当前会话的下一个事务的隔离级别,实际测试发现不起做用。
2、用set [{global|session}] tx_isolation={READ-COMMITTED|REPEATABLE-READ}改变事务隔离级别。
3、read committed隔离级别,二进制日志必须为row格式,或者不启用二进制日志。
4、autocommit为OFF时,上一个事务结束(rollback或commit)后,立即开启一个新的事务。事务的快照点,为事务中的第一条SQL语句(SELECT,DML)执行的时间点。
5、autocommit为ON时,每一个SQL语句(SELECT,DML)结束后,立即开启一个新的事务。事务的快照点,为事务中的(唯一的)SQL语句(SELECT,DML)执行的时间点。
6、start transaction语句,立即开启一个新的事务。事务的快照点,为事务中的第一条SQL语句(SELECT,DML)执行的时间点。
7、start transaction语句后,未执行commit或rollback来结束一个事务,再次执行start transaction语句,会隐式commit之前的事务,然后再开启一个新的事务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值