目录
事务概念:
事务是对数据库进行增删改操作的最小工作单元。
一个事务对应一个完整的业务,如银行转账。
事务特性(ACID):
原子性(Atomicity):一个事务中的所有操作,要么全部执行成功,要么全部失败回滚到执行前的状态。
一致性(Consistency):事务必须使数据库从一个一致性状态到另一个一致性状态。
隔离性(Isolation):一个事务的执行不被其它事务干扰,并发执行的事务不会相互影响。
持久性(Durability):事务一旦提交,其对数据库的改变就是永久性的。
没有事务的隔离性,会出现的问题:
脏读(Dirty Read):
一个事务读取了另一个事务未提交的数据。
不可重复读(Nonrepeatable Read):
一个事务读取了另一个事务已提交的修改的数据。
在一个事务中,两次读取同一行数据,两次读取的数据值不同。
幻读(Phantom Reads):
一个事务读取了另一个事务已提交的新增的数据。
在一个事务中,两次读取某个范围的数据,两次读取的数据行数不同。
事务的隔离级别:
读未提交(Read Uncommitted):
允许脏读、不可重复读、幻读。
读已提交(Read Committed):
Oracle默认级别。禁止脏读,允许不可重复读、幻读。
可重复读(Repeatable Read):
MySQL默认级别。禁止脏读、不可重复读,允许幻读。
串行化(Serializable)