代码改变世界

My SQL事务

2022-12-14 10:37  一树一菩提  阅读(22)  评论(0)    收藏  举报

事务-ACID:

Atomicity(原子性) : 要么都成功,要么都失败

Consistency(一致性) :最终一致性,保持数据库的完整性

Isolation(隔离性):多用户操作,事务间互不影响

Durability(持久性):分2种:

· 事务没有提交,数据恢复到原状

· 事务已经提交,持久到数据库了


 

事务隔离分为不同级别:

隔离级别描述
串行化(Serializable) 可以解决脏读,不可重复读及幻读问题
可重复读(repeatable read) 可以解决脏读,不可重复读问题
读提交(read committed) 可以解决脏读问题
读未提交(Read uncommitted) 最低级别,以上情况都无法解决

脏读:一个事务读取到了另一个事务未提交的数据

不可重复读:在一个事务内,每次读取到的数据结果不一致

虚读(幻读):在一个事务内,读取到了别的事务插入的数据,导致读取数据前后数量不一致(多一行数据)

 

数据库隔离级别设置:

select @@tx_isolation; 查询当前事务隔离级别

set transaction isolation level; 设置事务隔离级别

start transaction; 开启事务

commit;提交事务,同时事务结束

rollback;回滚事务,同时事务结束

 

参考:事务ACID理解dengjili的博客-CSDN博客事务acid