1.事务的四大特征(ACID)
(1)原子性:一个事务里面的所有数据操作是不可分割的,要么所有的操作全部成功,要么所有的操作全部失败。
(2)一致性:事务执行前后数据库的状态都是一致的,不管事务执行结果是失败还是成功,数据库的前后状态都是一致的。
(3)隔离性:并发访问的时候,一个事务不能干扰另一个事务 ,多个并发事务之间相互隔离。
(4)持久性:当一个事务提交完成后,数据的改变是永久。
2.事务隔离产生的问题
(1)脏读:一个事务读取了另一个未提交事务中的数据。
(2)幻读:正在执行的事务读取到另一个事务新提交的数据。
(3)不可重复读:一个事务多次查询数据,返回不同的结果。
3.MySQL的事务隔离级别
(1)Read uncommitted:读取未提交。---最低隔离级别,不防止任何隔离型问题,不能防止脏读/不可重复读/幻读问题。
(2)Read commit:读取已提交。--- oracle默认隔离级别,可以防止脏读问题,但是不能防止 不可重复读/幻读问题。
(3)Repeatable read:可重复读取。--- mysql默认隔离级别,可以防止脏读/不可重复读,不能防止幻读。
(4)Serializable:可串行化。--- 最高隔离级别,可以防止脏读/幻读/不可重复读。