不吃鱼

导航

 

1、SHOW ENGINES; 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。

2、事务的ACID特性:原子性(atomicity)、一致性(consistency)、隔离型(isolation)、持久性(durability)。

3、事务的状态

 4、使用事务有两种方式,分别为 显式事务 和 隐式事务 。 

显式事务 
步骤1: START TRANSACTION 或者 BEGIN ,作用是显式开启一个事务。
START TRANSACTION 语句相较于 BEGIN 特别之处在于,后边能跟随几个 修饰符 : 
① READ ONLY :标识当前事务是一个 只读事务 ,也就是属于该事务的数据库操作只能读取数据,而不能修改数据。
② READ WRITE :标识当前事务是一个 读写事务 ,也就是属于该事务的数据库操作既可以读取数据,也可以修改数据。
③ WITH CONSISTENT SNAPSHOT :启动一致性读。 
步骤2:一系列事务中的操作(主要是DML,不含DDL)
步骤3:提交事务 或 中止事务(即回滚事务)。COMMIT、ROLLBACK、ROLLBACK TO [SAVEPOINT] 
 
隐式事务
SHOW VARIABLES LIKE 'autocommit'; 
 
如果是chain方式,那么就变成了链事务。
SHOW VARIABLES LIKE 'completion_type'; 
 
SAVEPOINT
savepoint port1;
...
rollback to port1;
 
5、事务隔离级别
存在问题:脏写( Dirty Write )>脏读( Dirty Read )>不可重复读( Non-Repeatable Read )>幻读( Phantom )

 查看隔离级别:

SHOW VARIABLES LIKE 'tx_isolation';
SHOW VARIABLES LIKE 'transaction_isolation';
SELECT @@transaction_isolation;

设置隔离级别:

SET [GLOBAL|SESSION] TRANSACTION ISOLATION LEVEL 隔离级别;
#其中,隔离级别格式:
> READ UNCOMMITTED
> READ COMMITTED
> REPEATABLE READ
> SERIALIZABLE
SET [GLOBAL|SESSION] TRANSACTION_ISOLATION = '隔离级别'
#其中,隔离级别格式:
> READ-UNCOMMITTED
> READ-COMMITTED
> REPEATABLE-READ
> SERIALIZABLE 
posted on 2022-09-02 09:57  不chi鱼  阅读(17)  评论(0编辑  收藏  举报