数据库与事务

一,ACID

  数据库事务争取执行的四大要素::原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性。

  1. 原子性,原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生,即事务操作为原子操作。
  2. 一致性,一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
  3. 隔离性,多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
  4. 持久性,持久性,意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚,即事务提交成功则无法回滚。

二,事务隔离级别

JDBC定义了五种事务隔离级别:

TRANSACTION_NONE JDBC驱动不支持事务(MySql不支持)

TRANSACTION_READ_UNCOMMITTED 允许脏读、不可重复读和幻读。

TRANSACTION_READ_COMMITTED 禁止脏读,但允许不可重复读和幻读。

TRANSACTION_REPEATABLE_READ 禁止脏读和不可重复读,但允许幻读。(MySql默认级别)

TRANSACTION_SERIALIZABLE 禁止脏读、不可重复读和幻读

innodb存储引擎支持事务处理,而MyISAM不支持事务处理。

原文地址:https://www.cnblogs.com/heapStark/p/8241413.html