事务 隔离性

数据库的多版本并发控制(MVCC)

 

多个事务同时执行会出现的问题

脏读

不可重复读

幻读

事务隔离级别

读未提交:事务没提交,别的事务可以看到

读提交:事务提交,别的事务才能看到(视图) 

可重复读:执行过程中,事务看到的数据跟启动时一样。未提交变其它事务不可见(视图),场景:统计当前的数据情况,新加入的数据不会影响,begin transaction不启动事物,第一条语句才启动

视图数组:保存当前正在活跃的所有事物ID,为什么会有不在这个数组的情况?

 

串行化:写加写锁,读加读锁(写不能操作)。

 

配置读提交:将参数transaction-isolation的值设置成read-committed,可通过

show variables like 'transaction_isolation';查看当前配置

 

事务会为当前数据创建多个版本当作回滚日志(undo log),即使另一个事务在将数据更改也不会影响当前事务的回滚日志。

什么时候删除回滚日志?会有定期执行脚本删除最后的回滚日志(事务已经提交)。

为什么不建议用长事务?导致回滚日志积累占用空间。使用set autocommit=0,断开连接、commit、rollback才会提交事务

commit work and chain 提交事务并执行下一个事务

ACID的含义分别是是什么?

 

select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60 

查找持续时间超过 60s 的事务

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值