基本属性:ACID
Atomic: 原子性: 同一个事物里要么都提交,要么都回滚
(但是如果一个事物里 有innodb + MyISAM引擎,如果发生rollback,那么MyISAM引擎的操作是无法进行回滚的,因为MyISAM 引擎不支持事物)
从8.0 开始 MySQLddl语句只支持原子性,但是不支持事务,即一个begin 里的操作要不 都成功要不都失败,但是不支持事物.
如: 在一个begin,或者 一个alter ,rename 里面 多个ddl 操作要么都成功,要么都失败,不会只成功一部分: 如 alter table add index ,add index ; 8.0以前可能前面add index 成功后面的没成功, 8.0 则是符合原子性的
drop table t1,t2 ; 如果t2不存在8.0 以前不报错且t1被删除, 8.0以后则报错,t1不会被删除
Consistency: 一致性
在事物开始之前到结束之后,数据库的完整性约束没有被破坏
:即 在事物前后 数据没有发生丢失
如: 货物存量 :1000, 卖出量:100 在完成操作后: 剩余900 即900+100=1000 数据完成性没有被破坏
Isolation :隔离性
并发事物之间数据彼此隔离
即:并发操作,只要修改的不是同一行或相关行,则互不影响
Durabilty:持久性
事物提交后,数据务必持久化,不能发生丢失
再未设置双1 的情况下可能不符合 D(持久性)(事物在提交后 innodb 在刷redo 刷binlog刷数据文件的三阶段发生中断事物丢失,导致回滚)
支持事物引擎:
InnoDB ,NDBCluster,Tokudb,RocksDB
不支持事物的引擎:
MyISAM,MEMORY/HEAP
