mysql数据库事务及隔离级别详解
今天我们分享 mysql数据库事务及隔离级别:
一、事务特性:
首先,事务应该具有 4 个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。
原子性(atomicity):undo log(MVCC)
一致性(consistency):最核心和最本质的要求
隔离性(isolation):锁,mvcc(多版本并发控制)
持久性(durability):redo log
二、隔离性(**isolation**)详解:
1、隔离级别:
一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。(对数据库的并行执行,应该像串行执行一样)
未提交读(READ UNCOMMITED)脏读
已提交读 (READ COMMITED)不可重复读
可重复读(REPEATABLE READ)
可串行化(SERIALIZABLE)
数据库的事务隔离级别有四种,分别是读未提交、读已提交、可重复读、序列化,不同的隔离级别下会产生脏读、幻读、不可重复读等相关问题,因此在选择隔离级别的时候要根据应用场景来决定,使用合适的隔离级别。各种隔离级别和数据库异常情况对应情况如下:
还没有评论,来说两句吧...