事物介绍
作为一个关系型数据库,最重要的就是数据的持久一致,所以我们先来聊一聊事物!
事物在mysql中是由存储引擎实现的,而且支持事物的存储引擎并不多,既然说mysql,就主要用innodb存储引擎的事物!
事物处理可以用来维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部失败。
事物管理对象---->DDL、DML等语句,默认是自动提交的(就是你不自己手动开启事物,提交事物的话,系统默认一句sql直接提交)
事物四大特性(ACID)
Atomicity–>原子性:构成事物的所有操作必须是一个逻辑单元,而且原子性关注状态,要么全部成功,要么全部失败
Consistency–>一致性:数据库在事物执行前后的状态必须都是稳定的或者一致的,而且一致性关注数据的可见性,中间状态的数据对外部不可见,只有最初状态和最终状态的数据对外可见
IsonIation–>隔离性:事物之间不会互相影响,由InnoDB的锁机制以及MVCC机制实现
Durability–>持久性:事物执行成功后必须全部写入磁盘
事物操作
显示开启事物:begin或者start trasaction ------>这两个显示开启并不会在执行此命令时开启事物,而是在你执行完此命令后,进行第一次DML或者DQL的时候正式开始事物
提交事物:commit或者commit work,提交标识数据更改永久性
回滚事物:rollback 或者rollback word 回滚标识撤销此事物的所有操作
InnoDB架构
摘自https://www.jianshu.com/p/1c1f83d0bb72
由图详细的显示了InnoDB存储引擎的体系架构,InnoDB存储引擎由,内存池,后台线程,磁盘文件三部分组成(OS PAGE CACHE是系统缓存)