1.1 什么是事务:事务transaction (交易),伴随着交易类的业务出现的概念,出现了事务这种机制。
1.1 事务控制语句
begin 开启事务,commit; 进行提交事务
标准
隐式提交:
在事务当中如何使用ddl语句会出现隐式提交。
隐式回滚:
在事务编写过程,进行关闭或者不可控因素导致异常关闭会进行回滚。
事务ACID
A:原子性 不可在分性一个事务生命周期中的DML语句,要么全成功要么全失败,不可以出现中间状态 undo保证回滚的一致性
C:一致性事务发生前,中,后,数据都是最终一致。cr+dwb保证
I:隔离性事务操作数据行的时候,不会收到其他事务的影响。读隔离:隔离级别MVCC,写隔离,锁,隔离级别有: RU,RC,RR,SE主要用RC,RR
切换隔离模式为RU:
set global transaction_isolation=’READ-UNCOMMITTED’
RU级别会出现脏读,也就是内存读,没有提交的事务,也可以进行查看。
切换隔离模式为RC:
set global transaction_isolation=’READ-COMMITTED’
RC会出现不可重复读和幻读。
切换隔离模式为RR:
默认就是RR级别,可以有效的解决脏读,不可重复度,幻读
隔离级别 RR介绍:
mysql> show variables like ‘%iso%’;
+———————————-+————————-+
| Variable_name | Value |
+———————————-+————————-+
| transaction_isolation | REPEATABLE-READ |
+———————————-+————————-+
D:持久性,一旦事务提交,永久生效(落盘)redo保证,ckpt。
2.1事务的问题读有,脏读(当前内存读),不可重复读,幻读(需要配合锁的机制来解决幻读)。
