1、 事务的四种特性(ACID)
停电造成的问题
2、 并发访问问题
如果不考虑隔离性,事务存在3个并发访问问题。
3 、隔离级别:解决问题
数据库规范规定了四种隔离级别,分别用于描述两个事务并发的所有情况。select @@tx_isolation;
1:read uncommitted 读未提交,一个事务读到另一个事务没有提交的数据。
a) 存在:3个问题(脏读,不可重复读,虚读)。
b) 解决:0个问题
2:read commited 读未提交,一个事务读到另一个事务已经提交的数据
a) 存在:2个问题(不可重复读,虚读)。
b) 解决:1个问题(脏读)
3:repeatable read:可重复读,在一个事务中读到的数据始终保持一致,无论另一个事务是否提交。
a) 存在:1个问题(虚读)。
b) 解决:2个问题(脏读,不可重复读)
4:serializable 串行化,同时只能执行一个事务,相当于事务中的单线程。
a) 存在:0个问题
b) 解决:3个问题(脏读,不可重复读,虚读)