一、事务的基本特性(ACID)
1.原子性(Atomicity):事务中的所有操作要么全部生效,要么全部不生效。事务如果执行过程中报错,会将所有的操作回滚。也就是事务中的所有操作是一个整体,就像化学中学过的院子,是构成物质的基本单位。
2.一致性(Consistency):事务开始前和事务结束后,数据处于一致性状态。这个一致性,是指逻辑上的一致性。比如A转账给B,事务在执行过程中数据可能在不一致的状态,但是执行完成后。A和B的账户余额,加起来是和事务执行前一样的。
3.隔离性(Isolation):多个事务并发处理数据时,理论上应当互不影响,相互隔离。
4.持久性(Druability):事务提交后,对数据库的更新会永久保存下来。
二、事务的隔离级别
查看事务的隔离级别:select @@tx_isolation;
1.读未提交(read-uncommitted)
一个事务可以读取另一个事务未提交的数据。这种隔离级别会出现脏读。
2.读已提交(read-committed)
一个事务可以读取另一个事务已提交的数据。这种隔离级别会出现不可重复读。
3.可重复读(repeatable-read)
同一个事务同样的查询,在事务中任何时刻查询查询结果一致。这种隔离界别会出现幻读。