事务
1.事务的基本介绍
1 . 概念 :
* 如果一个包含多个步骤的业务操作,被事务管理 ,那么这些操作,要么同时成功,要么同时失败.(能够对我们所做的事情进行管理的东西就称为事务)
操作
1.开启事务 : start transaction ;
mysql事务默认自动提交,
2.回滚 :
2.事务的四大特征
1 . 原子性 : 是不可分割的最小操作单位,要么同时成功,要么同时失败
2. 持久性 : 当事务提交或回滚后, 数据库会持久化的保存数据.
3.隔离性 : 多个事务之间,相互影响
4. 一致性: 事务操作前后, 数据总量不变
3 . 事务的隔离级别(了解 )
* 概念 : 多个事务之间隔离的,相互独立的.但是如果多个事务擦操作同一批数据,则会引发一些问题.设置不同的隔离级别就可以解决这些问题.
*存在问题
1.脏读 : 一个事务读取到另一个事务中没有提交的数据
2.不可重复读 : 在同一个事务中两次读取到的数据不一样.
3. 幻读(虚读) : 一个事务操作(DML) 数据表中所有记录, 另一个事务添加了一条数据,则第一个事务查询不到自己的修改.
*隔离级别:
1.read uncommitted : 读未提交问题
*产生的问题 : 脏读 丶 不可重复读 丶 幻读
2. read committed : 读已提交
*产生问题 : 不可重复读丶 欢度
3. repetable read : 可重复读
*产生的问题 : 幻读
4.serializable : 串行化
*可以解决所有问题
*注意 : 隔离级别重小到大 . 安全性越来越高.但是效率越来越低
* 数据库查询隔离级别:
*select @@tx_isolation;
*数据库设计隔离级别
* set global transaction isolastion level 级别符串 ; |
|