工作以来一直使用mysql innodb引擎,业务代码中往往需要使用事务,事务有以下几个特性, a(原子性),c(一致性),i(隔离性),d(持久性)
一个事务被视为最小执行单元,要么全部执行,要不全不执行
数据库总是从一个一致性的状态转移到另外一个一致性的状态
一个事务所做的修改在commit之前,对其他事务来说是不可见的
一个事务commit之后,就持久的保存在系统中,无论系统错误或者系统重启,数据也不会丢失
在数据库操作中,为了保证在并发读取数据的正确性,提出了事务的隔离级别。
隔离级别
脏读
不可重复读
幻读
未提交读(read uncommited)
可能
已提交读 ( read commited)
不可能
可重复读 (read repeatable)
串行读 (read serializable)