再次思考一下Mysql的ACID

发布时间 2023-04-12 15:29:51作者: 脚比路长

ACID是事务的特性:一致性、原子性、隔离性、持久性。(记不住的话,一原隔持-依然搁置)

事务本身来讲,是具有强隔离性的。即一个事务想访问另外一个事务正在访问的数据,需要排队。这种强隔离性,导致并发情况下的访问性能受限。但是有的时候,隔离性弱一点,可以带来的并发访问性能的提升,这个正是MVCC的思想:牺牲部分隔离性,换取更高并发访问性能。

但是,牺牲隔离性,所带来的并发访问的问题,必须是要被接受的。

弱隔离性——>强隔离性,有四个等级:(read uncommited) (read commited) (repeated read) (serializeable) 

(read uncommited) 最弱隔离性,完全不做控制,会出现各种情况(脏读、不可重复读、幻读)

(read commited)

(repeated read)

(serializeable)  最强隔离性,等同于完全加锁