一文搞懂MySQL事务实现原理

治疗白癜风的费用 https://disease.39.net/bjzkbdfyy/170521/5390504.html
本章内容事务定义

事务指的是保证一组数据库操作,要么全部成功,要么全部失败。

在MySQL中,事务支持是在引擎层实现的,MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。如:MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。

事务ACID特性

事务的ACID特性指的是原子性、一致性、隔离性、持久性。

原子性(Atomicity):指的是事务中所有操作要么全部成功,要么全部失败。

一致性(Consistency):指的是事务执行前后,数据始终处于一致性状态,不会出现数据丢失。

隔离性(Isolation):指的是多个事务并发执行时,各事务在执行过程中所做的修改对其他事务不可见,直到该事务成功提交。

持久性(Durability):指的是事务一旦提交,对数据库所做的修改将会永久保存。

事务实现原理

原子性:通过undolog来实现。

持久性:通过binlog+redolog来实现。

隔离性:通过读写锁+MVCC来实现。

一致性:通过回滚、恢复以及在并发环境下的隔离做到一致性。

SQL执行流程

一条SQL语句的完整执行流程。如图所示:

其中:

步骤5:如果将参数innodb_flush_log_at_trx_


转载请注明:http://www.aierlanlan.com/rzfs/9459.html

  • 上一篇文章:
  •   
  • 下一篇文章: