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
  目录