(1)概念:一个包含多个步骤业务操作,被事务管理,这些操作具有统一性(要么成功,要么失败)
*操作开启事务(start transaction)---回滚(rollback)---提交事务(commit)
(2)事务四大特征
*原子性:不可分割的最小操作单位
*持久性:一旦提交或回滚,数据会被持久更新
*隔离性:多个事物之间相互独立
*一致性:事务操作前后,数据总量不变
(3)事务隔离级别
*概念:多个事务操作同一批数据,会出现问题
*存在问题
*脏读:一个事务读到另一个事务没有提交的数据
*不可重复读(虚读):在同一个事务中,两次读到数据不一样
*幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一个数据,则第一个事务查询不到自己的修改
*隔离级别
*read uncommitted:读未提交
产生的问题:脏读,虚读,幻读
*read committed:读已提交(Oracle默认级别)
产生的问题:虚读,幻读
*repeatebale:可重复读(MySQL默认级别)
产生的问题:幻读
*serializable:串行化
可以解决所有的问题
注意:隔离级别从小到大,安全性越来越高,效率越来越低
数据库查询隔离级别:select @@tx_isolation;
数据库设置隔离级别:set global transaction isolation level 级别字符串
85万+

被折叠的 条评论
为什么被折叠?



