mysql的innodb存储引擎事务隔离级别
Posted 梦幻朵颜 Joyce Zhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的innodb存储引擎事务隔离级别相关的知识,希望对你有一定的参考价值。
innodb存储引擎支持数据库事务,事务有四大特性ACID:
原子性 Atomicity
一致性 Consistency
持久性 Durability
隔离性 isolation
隔离级别 | 脏读 | 不可重复读 | 幻读 | |
1 | Read uncommitted 未提交读 | 可能 | 可能 | 可能 |
2 | Read committed 已提交读 | —— | 可能 | 可能 |
3 | Repeatable read 可重复读 | —— | —— | —— 在mysql中已基本解决幻读问题 |
4 | Serializable 可序列化 | —— | —— | —— |
事务隔离级别:
1) Read uncommitted 未提交读。脏读。事务2读到事务1已更改但未提交的数据
2) Read committed 读已提交。可重复读。事务2要等事务1提交后才能读取数据。 同一个线程在一个事务过程中相同查询SQL,前后返回了其他线程事务提交前和提交后两种不同的值
3) Repeatable read 可重复读。读事务开启后,不再允许update操作。
Phantom reading 幻读。幻读是读取到了之前没有读取到的记录。幻读对应的问题是insert操作,而不是update操作。 对于delete操作,SQL92标准里视为幻读,但在mysql官方认为它不是幻读,认为是发生了被删除记录的不可重复读。
4) Serializable 可序列化。 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。
参考 《理解事务的4种隔离级别》
end.
以上是关于mysql的innodb存储引擎事务隔离级别的主要内容,如果未能解决你的问题,请参考以下文章