首页 数据库 mysql教程 【终身难忘的记忆法】事务隔离级别

【终身难忘的记忆法】事务隔离级别

Jun 07, 2016 pm 03:57 PM
事务 级别 隔离

前几天看spring3.x的时候,看到了事务隔离级别那,提到这就要提到五种常见的事务并发问题,就是大家耳熟能详的脏读、幻读、不可重复读、第一类更新丢失、第二类更新丢失。那么今天我就主要来讲最常用的前三类问题,当然,是用最易懂的方式。 首先,什么是脏

前几天看spring3.x的时候,看到了事务隔离级别那,提到这就要提到五种常见的事务并发问题,就是大家耳熟能详的脏读、幻读、不可重复读、第一类更新丢失、第二类更新丢失。那么今天我就主要来讲最常用的前三类问题,当然,是用最易懂的方式。

首先,什么是脏读?

学术解释:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

我的解释:你正在做菜,把切好的菜放在一边准备下锅,这时候,妻子告诉你开饭了,然后端着你这堆还没下锅的菜就放到了餐桌上。

什么是不可重复读?

学术解释:不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

我的解释:当你是一个乐队的指挥,当第一乐章的小提琴独奏开始时,你觉得他非常美妙; 可到了第二乐章小提琴独奏的时候,你发现他消失了,观众告诉你他中途上厕所去了,还没回来。

什么是幻读?

学术解释:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。

我的解释:我同“不可重复读”用同一个场景,当你在演奏第一乐章的时候,你觉得音乐非常美妙,但到了第二乐章的时候,你突然感觉音乐出现了不和谐的声音,然后你发现,乐队突然多了一个鼓手。

不可重复读和幻读的区别?

不可重复读是指你第一次注意乐队里的一个人,第二次看到他时,出现了变化。

幻读是指,你第一次注意的由很多人组成的乐队,当第一次看到这支乐队时,乐队多了一个人。

不可重复读针对的是个人,一条数据。

幻读针对的是集合、多条数据。

最后提一下事务的四个隔离级别,要注意自上而下的顺序,并发速度可是递减的哦。

MySQL5 默认的事务隔离级别为:REPEATABLE-READ

查看 MySQL5 的事务隔离级别:select @@select @@tx_isolation;

修改 MySQL5 的事务隔离级别:set transaction isolation level read committed;

\

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Lock wait timeout exceeded; try restarting transaction - 如何解决MySQL报错:事务等待超时 Lock wait timeout exceeded; try restarting transaction - 如何解决MySQL报错:事务等待超时 Oct 05, 2023 am 08:46 AM

Lock wait timeout exceeded; try restarting transaction - 如何解决MySQL报错:事务等待超时

MySQL事务处理:自动提交与手动提交的区别 MySQL事务处理:自动提交与手动提交的区别 Mar 16, 2024 am 11:33 AM

MySQL事务处理:自动提交与手动提交的区别

详解win10病毒隔离的位置 详解win10病毒隔离的位置 Dec 25, 2023 pm 01:45 PM

详解win10病毒隔离的位置

掌握 PHP PDO 的力量:高级查询和更新 掌握 PHP PDO 的力量:高级查询和更新 Feb 20, 2024 am 08:24 AM

掌握 PHP PDO 的力量:高级查询和更新

MongoDB技术开发中遇到的事务管理问题解决方案分析 MongoDB技术开发中遇到的事务管理问题解决方案分析 Oct 08, 2023 am 08:15 AM

MongoDB技术开发中遇到的事务管理问题解决方案分析

PHP PDO教程:从基础到精通的进阶指南 PHP PDO教程:从基础到精通的进阶指南 Feb 19, 2024 pm 06:30 PM

PHP PDO教程:从基础到精通的进阶指南

Java EJB架构详解,构建稳定可扩展的系统 Java EJB架构详解,构建稳定可扩展的系统 Feb 21, 2024 pm 01:13 PM

Java EJB架构详解,构建稳定可扩展的系统

MySQL事务的原理及应用场景 MySQL事务的原理及应用场景 Mar 02, 2024 am 09:51 AM

MySQL事务的原理及应用场景

See all articles