mysql事务机制

简介

知识点:

  1. 什么是事务
  2. 事务的特点
  3. 事务的隔离机制
  4. 事务的并发问题

事务概念和特点

事务是指执行大量和复杂的数据操作,只有innodb引擎才支持事务。

事务具有以下特点:

  1. 一致性:如果事务没有成功,则所做的修改将不会保存到数据库中
  2. 原子性:事务的所有操作,要么全部成功提交,要么全部失败回滚
  3. 持久性:一旦事务成功提交,则对数据库的修改是永久有效的
  4. 隔离性:一个事务在提交之前所做的修改,对于其他事务是不可见的

操作sql

start tranction;
select * from userinfo where id = 1;
update userinfo set number = 1 where id =1;
commit;

begin;
select * from userinfo where id = 1;
update userinfo set number = 1 where id =1;
commit;

隔离机制

未提交读(READ UNCOMMITTED)

事务可以读取到未提交的数据

提交读(READ COMMITTED)

事务从开始到结束之前所做的任何修改,对于其他事务都是不可见的

重复度(REPEATABLE READ)

事务多次读取同一数据,返回的结果都是一致的。

可重复读是mysql默认的隔离机制。

可串行化(SERIALIZABLE)

一个事务在没有提交完成时,其他事务无法进行,需要进行等待。

并发问题

脏读

事务可以读取到未提交的数据。

幻读(针对添加和删除)

事务A多次读取同一范围内的数据时,事务B在此范围内进行了删除或者修改,导致事务A出现了幻行。

不可重复读(针对修改)

事务A多次读取同一数据时,事务B对此数据进行了修改,导致事务A返回的数据不一致。

隔离机制并发问题整合

隔离级别 脏读 不可重复读 幻读
未提交读
提交读
重复读
可串行化

 上一篇
mysql主要引擎区别 mysql主要引擎区别
简介通过梳理了解 mysql innodb 和 myisam 两个主要存储引擎的区别。 事务 innodb 管理事务表,支持4个隔离级别,如果应用需要进行大量的写操作时推荐使用,可以有效提高多用户的并发操作能力。 myisam 管理非事务
2020-03-11
下一篇 
mysql锁机制 mysql锁机制
简介通过此文,你将学习mysql锁的相关内容: 什么是锁 锁都有哪些类型,每个类型的区别 分析锁的使用情况和应用场景 概念锁:mysql为了解决资源共享,所造成并发问题的处理机制。 锁根据粒度分为: 表锁(粒度大,myisam引擎默认
2020-03-10
  目录