事务的特征:ACID
Atomicity:原子性
Consistency:一致性
Isolation:隔离性
Duration:持久性
在SQL标准中定义了事务的四种隔离级别:
1,read uncommitted 未提交读
事务中的改动。即使没有提交,对其它事务也都是可见的。即事务能够读取未提交的数据。即会产生脏读。
2,read committed 提交读
大都数系统都是这个级别的,oracle就是这个级别,可是MySQL不是这个级别的。
该事务级别定义:一个事务開始时,仅仅能“看见”已经提交的事务所做的改动。
换句话说。一个事务从開始到提交,所做的不论什么改动对其它的事务都是不可见的。
3,repeatable read 可反复读
读取数据的事务将会禁止写事务(但同意读事务),写事务则禁止不论什么其它事务。MySQL默认是此级别的。
4,serializable 可串行化
它是最高隔离级别。Serializable会在读取的每一行数据上都加锁。所以可能导致大量的超时和锁争用的问题。