所谓数据库隔离级别,就是为了解决两个或多个事务之间操作同一个数据库对象是出现的冲突问题。对数据的操作无非是读写,事务隔离级别也主要是在事务的读写之间进行隔离。
首先列一下4种隔离级别:
1.read uncommited(可读未提交的)
2.read commited(提交了才能读)
3.repeatable read(可重复读)
4.serializable(序列化读写)
先从简单说起吧,serializable无非是最严格的,不官你是读还是写,必须排队一个个来,所以这个隔离级别不会出现脏读幻读之类的问题,每个事务操作的都是完完全全属于自己的数据,不会有其他事务和你挣。但是可想而知这种级别也是效率最低的,很少场景会使用这种隔离级别。
read uncommited可读取未提交的数据,就是我在写的时候你顺便读,我在数据库写你读到的就是什么,但这时候写的事务并没有提交,所以读到的是脏数据。一版数据库默认都是使用这个事务隔离级别。
read commited 比read uncommit级别更高一点,我写的时候,你是不能读的,只有我提交了你才能读,这种级别偏向于写,可以理解成写的地位更高,读的都的往后排。这样避免了脏读的问题,但是会有这样一种情况,假设我需要读两遍数据库,我第一次读到数据,好,这个时候你开始写的事务,因为你地位高我就等你写完再读,这下可想而知数据被改了,在读的时候与第一次读到的数据就不一样了,这个就叫幻读。
幻读是两次读到的数据不一致,与脏读表象是一样的。但是区别于脏读,脏读读到的数据是写事务还未提交的数据,而幻读是写事务已提交了数据。只是前后两次读到的不一致,感觉像产生幻觉一样。
那怎么解决幻读这个问题呢,很明显我们会想到把读的地位提高,我要读两次你就得等我两次读完你才能写,这就是repeatable read 可重复读,读的事务开始了,爱怎么读怎么读,写给我靠边站,这样就不会出现幻读,这种级别比read commited又高了一级。
这就是数据库的4种隔离级别。
分享到:
相关推荐
性能高和事务完全隔离性无法同时满足,DB提供了4项事务隔离级别来权衡,需要用户根据自身业务来选择合适的隔离级别。隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。我们的数据库锁,...
数据库事务: 针对数据库的某一组操作要么全部成功,要么全部失败。 事务的作用 1:保证数据的完整性,失败后可以恢复到原来状态 2:事务与事务之间互不干扰,这样数据会更加安全 数据库事务ACID属性 / 特性 原子性...
什么是数据库事务隔离级别?列举一些常见的事务隔离级别。 什么是数据库索引类型?列举一些常见的索引类型。 什么是数据库备份和恢复?列举一些常用的数据库备份和恢复策略。 什么是数据库优化?列举一些常见的...
数据库事务隔离级别; 事务的并发导致的问题; 数据库事务设置不同的隔离级别会导致的不同并发问题 当前读和快照读的意义; mvcc:多版本控制: 指的是一种提高并发的技术,其解决问题是什么; MVCC实现过程; mvcc三大...
在面试准备过程中,熟悉这些问题并理解其背后的概念和原理将有助于你在面试中展示自己的数据库知识和技能。同时,也建议深入学习和掌握MySQL的各个方面,以便更好地应对各种类型的面试问题。 这些问题涵盖了MySQL...
在mysql中,数据库的事务隔离采用的是MVCC结合锁来实现的。 我是李福春,今天的问题是,mysql是如何实现事务隔离的?在实际开发中应该如何正确的使用事务? ACID特性 事务首先具备ACID特性,即 Atomic原子性, ...
十一、设置事务隔离级别 12 十二、隔离级别的作用范围 12 十三、查看隔离级别 12 DB索引 13 MySQL索引的类型 13 索引原理 13 Mysql索引管理 14 索引的两大类型hash与btree比较 15 索引原则 15 索引无法命中 15 慢...
答:数据库事务Transaction正确执行的四个基本要素:ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不...
2、Mysql提供了哪几种事务隔离级别? 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义? 4、date,datetime和timestamp数据类型有什么区别? 5、union 与union all的区别? 6、简述Mysql几种Join的...
MySQL有几个隔离级别(最好这个问题不要等被问,而在问上个的时候主动说这个) MySQL是怎么确保事务的正常执行的(日志,这个问得好像不多,但是可以作为一个亮点) MySQL有哪些存储引擎,各自的特点 因为这篇文章不...
•隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 A ------> B B ------> C •持久性(Durability...
事务处理:理解事务的概念和作用,掌握事务的隔离级别和事务的并发控制方法。 数据库设计和关系范式:了解关系型数据库的设计原则和关系范式的基本概念,能够根据实际需求进行数据库设计。 安全性和权限管理:理解...
│ Java面试题54.Spring事务的传播特性和隔离级别.mp4 │ Java面试题55.ORM是什么?ORM框架是什么?.mp4 │ Java面试题56.ibatis和hibernate有什么不同.mp4 │ Java面试题57.hibernate对象状态及其转换.mp4 │ Java...
对面试时数据库的常问的问题进行汇总,比如请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别、在 MySQL 中 ENUM 的用法是什么、CHAR 和 VARCHAR 的区别等等。
Java面试题54.Spring事务的传播特性和隔离级别 Java面试题55.ORM是什么?ORM框架是什么? Java面试题56.ibatis和hibernate有什么不同 Java面试题57.hibernate对象状态及其转换 Java面试题58:hibernate的缓存 Java...
1.3事务的隔离级别每个级别会引发什么问题2.内联接,外联接区别?3.索引3.1索引的作用?和它的优点缺点是什么?3.2使用索引查询一定能提高查询的性能吗?为什么?3.3MySQL为什么使用B+树,而不是使用其他?B+树的特点...
事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别? MySQL常见的存储引擎InnoDB、MyISAM的区别?【~】 数据库三范式,根据某个场景设计数据表?优缺点 MySQL 索引使用的注意事项 SQL怎么优化 数据库悲观...
根据《数据库系统概论(第5版)》图书整理的思维导图,考试复习以及面试的时候可以看看,... 内容包括基本的关系代数语言、结构化查询语言、事务隔离级别、范式、事务的并发控制(丢失修改、不可重复读、度脏数据)等。
1、什么是数据库事务? 「数据库事务」: 是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 2、事务的四大特性是什么...