什么是事务?事务的四大特性是什么?
事务
- 事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元。
事务四大特性-ACID
- 原子性(Atomicity): 要么全部提交成功,要么 全部失败回滚
- 一致性(Consistency): 数据库总是从一个一致性的状态转换到另一个一致性的状态。
- 隔离性(Isolation): 一个事务所做的修改操作在提交事务之前,对于其他事务来说是不可见的。
- 持久性(Durability): 一旦事务提交,则会永久保存到数据库。
事务隔离级别有哪些?MySQL的默认隔离级别是?
SQL 标准定义了四个隔离级别:
-
READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。
-
READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。
-
REPEATABLE-READ(可重复读): 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
-
SERIALIZABLE(可串行化): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。
MySQL InnoDB 存储引擎的
默认支持的隔离级别是 REPEATABLE-READ(可重读) 。
可以通过SELECT @@tx_isolation; 命令来查看。