MYSQL–事务
一:什么是事务
事务就是一个完整的业务逻辑单元不可再分,说白点其实是一条或多条DML语句要么同时成功要么同时失败,成功提交会影响其他数据库进程,失败则该事务的所有操作都会取消。
二:事务的作用
事务是为了保证数据的完整性,安全性,和事务相关的只有DML语句
三:事务的支持
Mysql默认的情况下是不会支持事务的,数据库中的数据是autocommit,所以需要手动开启start transaction,通过命名commit提交事务或者rolback回滚事务.
四:事务的特性
1:原子性
原子性的事务要么都成功要么都失败,比如我转给你一百块钱,要么你收到一百我少了一百,要么你没收到一百我没转成功。
2:一致性
一致性的要求事务在开始和解释处理的过程中,数据保持不变,比如我转你一百,我少了一百,你多了一百而不是多了两百。
3:隔离性
事务A在操作的过程当中不会收到事务B的影响,比如学生考试只有交试卷后老师才会改试卷进行打分。
4:持久性
事务正确提交后会将数据永久保存到硬盘。
五:事务的隔离性
- read uncommited :读到未提交数据,脏读,不可重复读,幻读
- read committed:不可重复读,幻读
- repeatable read:幻读
- serializable :串行事物,读取数据需排队
- PS— 容易引起的问题
- 脏读:事务A读取事务B修改未提交的数据,事务B提交后,与事务A读取的数据不一致
- 不可重复读:事务A读取初始数据,事务B提交修改的数据,两者数据导致不一样
- 幻读:事务A根据相同的条件读取事务B新增的数据导致结果不一样。