1.事务只有innodb引擎的数据库或者表,才支持事务
2.事务可以维护数据库完整性 要么全执行,要么不执行
3.事务用来管理 增删改语句
4.事务必须满足4个条件 (ACID):原子性(Atomicity或称不可分割性)、一致性(Consistency)、隔离性(lsolation,又称独立性)、持久性(Durability)。
原子性:一个事务(Atomicity)中的所有操作,要么全完成、要么全不完成。中途遇到错误会回滚到事务执行前的状态,就像未执行一样。
一致性:执行后数据库的完整性,没有被破坏。这里表示写入的资料必须完全符号预设的规则。
隔离性:数据库允许并发执行事务,而事务的隔离性,就可以防止并发时数据交叉产生的数据不一致的情况。隔离性又分为不同级别包括:未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
持久性:事务处理结束后,对数据的修改是永久的,即便系统故障也不会丢失。
mysql默认开启事务,事务都是自动提交的,也就是sql执行完之后就会commit自动提交。
set autocommit= 0,禁止当前会话自动提交。
举个例子:导入100亿条数据,每一条数据都自动提交,就要导入10天,而关闭当前会话的事务,等结束后手动执行commit统一提交,只需要1天。