什么是事务
一个数据库事务由一条或者多条sql语句构成,它们形成一个逻辑的工作单元。这些sql语句要么全部执行成功,要么全部执行失败
事务的好处
事务是保证数据的完整性和一致性的重要手段
事务类型
DML事务:由一条或者多条DML(数据操纵语言)语句构成
DDL事务:总是由一条DDL(数据定义语言)语句构成
DCL事务:总是由一条DCL(数据控制语言)语句构成
事务的四个特性
- 原子性(A):事务中的操作要么全都不做(失败),要么全都要做(成功)
- 一致性(C):执行了操作之后,各个表之间的数据必须保持一致,不能出现多个版本
- 隔离性(I):多个用户多数据库进行操作不会相互影响,一个事务的执行不会被另一个事务所影响
- 持久性(D):一个事务一旦提交,它对数据库中数据的改变就是永久性的(就相当于落盘)
事务并发的四个问题
- 脏读:一个事务读到另一个事务未提交的数据,已修改未提交的数据叫做脏数据
- 不可重复读:由于进行了update导致用户读取的数据的值不同
- 幻读:由于进行了insert或者delete导致用户读取的数据的行数不同
- 丢失更新:后面的用户前面的用户的数据覆盖
解决并发问题的4个隔离级别:
读未提交、读已提交、可重复读、串行化
查看:
select @@tx_isolation;