事务的属性 ACID
-
原子性 Atomicity:指事物是一个不可分割的单位,事务操作要么都执行,要么都不执行;
-
一致性 Consistency:事务必须使数据库从一个一致状态转变到另一个一致性状态;
-
隔离性 Isolation:一个事务的执行不能被其他事务干扰;并发执行的各个事务之间不能互相干扰;
-
持久性 Durability:一个事务一旦被提交,对数据库中的改变是永久性的;
隔离级别
并发问题:
- 脏读:对于连个事务,T1读取了T2更新但未提交的数据,则T1读取的内容就是临时且无效的;
- 不可重复读:对于两个事务,T1读取了一个字读,T2更新了该字段,T1再次读取同一个字段,值就不同了;(针对更新)
- 幻读:T1读取数据子后,T2插入了一些新数据,之后T1在读取同一个表,就会多出几行;(针对新增)
隔离级别
- READ-UNCOMMITTED:三种问题都会出现,mysql最低级别;oracle不支持
- READ-COMMITTED:避免了脏读,其他两个没有避免;oracle默认级别;oracle支持
- REPEATABLE-READ:可避免脏读,不可重复读;oracle不支持,mysql默认级别;
- SERIALIZABLE:都可以避免;oracle支持
#5.7及之后
select @@transaction_isolation;
#5.7以前
select @@tx_isolation;
set session transaction isolation level 级别;
网友评论