一文详解MySQL中的事务和 MVCC 原理
本篇文章带大家了解一下MySQL中的事务,并介绍一下MVCC 原理,希望能够给大家提供帮助! 01 什么是事务? 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是
本篇文章带大家了解一下MySQL中的事务,并介绍一下MVCC 原理,希望能够给大家提供帮助!
01 什么是事务?
数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作,有点一不做二不休的意思。
在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之一。
1.1 四大特性
SQL 事务的四大特性中原子性、一致性、持久性都比较好理解。但事务的隔离级别确实比较难的,今天主要聊聊 MySQL 事务的隔离性。
SQL 标准的事务隔离从低到高级别依次是:读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializable )。级别越高,效率越低。
SQL 事务隔离级别的设计就是为了能最大限度的解决并发问题:
1.4 举个栗子
这么说可能有点难以理解,举个栗子。还是之前的表结构以及表数据