MySQL的事务,容易懂,快来看看吧!

事务

1.存储引擎

  • Mysql核心存储引擎。
  • Mysql5.5 默认采用innoDB。(my.ini)

 

2.什么是事务

  • 事务用于保证数据的一致性,由一组DML操作组成,该组SQL语句要么同时成功,要么同时失败。例如转账。

3.事务的四大特性(ACID)

  • 原子性: dml作为整体不可分割。
  • 一致性: 事务执行前后整体的状态不变。
  • 隔离性: 并发事务之间互相独立,不能相互干扰。
  • 持久性: 事务执行完毕,则数据将持久化到数据库。

4.并发事务产生的问题

  • 脏读:   一个事务读到另一个事务未提交的数据。
  • 不可重复读:   在一个事务t1执行过程中,由另一个事务t2对该数据进行修改并且提交了事务;t1再次进行处理时发现数据已经改变。
  • 幻读(虚读):   在一个事务t1的执行过程中,另一个事务t2对该数据进行增加删除操作并且提交事务;t1再次读取时发现数据不一致。

5.事务隔离级别

  • 读未提交: 无法解决问题
  • 读已提交: 解决脏读问题。    Oracle
  • 可重复读: 解决脏读和不可重复读问题。  Mysql
  • 串行化: 解决所有问题。

6.数据库中事务语法

set autocommit=0;

start TRANSACTION;

update account set money=money-100 where aid = 1;

update account set money=money+100 where aid = 2;

#commit;

rollback;

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/83448090