MySQL 5.5之前 默认存储引擎是MyISAM,5.5后InnoDB。
事物,transaction,进行一次处理的基本单元,要么完全执行,要不都不执行
事物保证了一次处理的完整性,也保证了数据库中的数据一致性,高级的数据处理方式,增删改环节出了错,允许我们回滚。
事务特性ACID
事物特性,要不完全执行,要不都不执行,不能执行一半,四个英文字母表达ACID特性。
A 原子性(Atomicity) 原子的概念就是不可分割,组成物质的基本单位,进行数据处理操作的基本单位
C 一致性(Consistency) 数据库进行事务操作后,,会由原来的一致状态,变成另一种一致的状态。当事务提交后,或者当事务发生回滚后,数据库的完整性约束不能被破坏。任何写入数据库中的数据都需要满足我们事先定义的约束规则。
I 隔离性(Isolation) 每个事务都是彼此独立的,不会受到其他事务的执行影响。一个事务在提交前,对其他事务都是不可见的。
D 持久性(Durability) 事务提交之后对数据的修改是持久性的,即使在系统出故障的情况下,比如系统崩溃或者存储介质发生故障,数据的修改依然是有效的。因为当事务完成,数据库的日志就会被更新,这时可以通过日志,让系统恢复到最后一次成功的更新状态。
A 基础
I 手段
C 约束条件
D 目的
一致性 将id设置为唯一性约束,当事务进行提交或者事务发生回滚的时候,id非唯一,就破坏了事务的一致性要求。
事务操作会让数据表的状态变成另一种一致的状态,如果事务中的某个操作失败了,系统就会自动撤销当前正在执行的事务,返回到事务操作之前的状态。
事务的另一个特点就是持久性,持久性是通过事务日志来保证的。日志包括了回滚日志和重做日志。当我们通过事务对数据进行修改的时候,首先会将数据库的变化信息记录到重做日志中,然后再对数据库中对应的行进行修改。这样做的好处是,即使数据库系统崩溃,数据库重启后也能找到没有更新到数据库系统中的重做日志,重新执行,从而使事务具有持久性。