mysql-事务
事务是用来维护数据库完整性的,它能够保证一系列的sql要么全都执行,要么全都不执行。
事务的特性:
- 原子性:事务是应用中不可再分的最小的逻辑执行体。事务中的一系列操作,要么都执行,要么都不执行。
- 一致性:事务执行的结果必须使数据库从一个一致性状态,变成另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态,一致性是通过原子性来保证的。
- 隔离性:各个事务的执行互不干扰,任意一个事务的内部操作,对其他并发的事务,都是隔离的,在提交前是不可见的。也就是说,并发执行的事务之间不能看到对方的中间状态。
- 持久性:事务一旦提交,对数据所做的任何改变,都要记录到永久储存器中。
事务并发问题:
- 脏读:一个事务读到了另一个事务修改未提交的数据。
- 不可重复读:一个事务读到了另一个事务修改提交的数据。
- 幻读:一个事务读到了另一个事务插入、删除提交的数据。
事务隔离级别:
- 读未提交:最低的隔离级别,不锁,脏读、不可重复读、幻读都有可能发生。
- 读已提交:不锁,可以避免脏读,不可重复读、幻读可能发生。
- 重复读:锁行,可以避免脏读、不可重复读,幻读可能发生。默认级别
- 序列化:锁表,可以避免脏读、不可重复读、幻读。

浙公网安备 33010602011771号