一、事务
事务就是一件事情。
1、事务是一个整体,要么做完,要么一点不做,即具有原子性。
2、事务执行的结果是从一个一致性状态变为另一一致性状态。事务执行完成后,事务处于一个一致性状态,若执行中途发生故障,事务被迫中断,这时称数据库处于不一致状态。
3、一个事务的执行不能被其他事务打扰。事务隔离级别(Transaction Isolation Level)如下:
READ_UNCOMMITTED;
READ_COMMITTED;
REPEATABLE_READ;
SERIALIZABLE;
4、持续性也称持久性,即一个事务提交后对数据库的改变是永久性的,后面的其他操作不应对其执行结果产生影响,比如事务A对数据库进行了操作,然后事务B做了其他操作,事务B的结果只能影响数据库,而不应该影响事务A的结果,不能因为B而使A的结果产生变化。
原子性是基础,隔离性是手段,持久性是目的。
二、数据在高并发下的问题
1、Dirty Read
事务A读取了事务B未提交的数据,并在其基础上又做了其他操作。
2、Unrepeatable Read
事务A读取了事务B已提交的更改数据。
3、Phantom Read
事务A读取了事务B已提交的新增数据。