面试问题(事务有哪些隔离级别)

【MySQL:查看自己数据库文件所在的位置】附:互联网大厂 数据库面试题:简述索引的作用,以及常见的索引类型和优缺点;MySQL的事务隔离级别有哪些?请分别说明各个隔离级别的特点以及可能出现的问题。 本篇文章较为详细地讲解了如何查找mysql数据库真实物理文件的存储位置,只要我们直接复制数据库文件,即可对数据库进行搬迁,也可以对数据库文件的存放位置进行改变。 方法如下: 第1步: 打开 mysqml 文件夹,显示的文件如下,然后找到 my.ini 文件,如图所示。 第2步: 选中 my.ini 文件,这时候点击鼠标右键依次选择”打开方式“然后选择”记事本打开“。如图。 第3步: 以记事本的方式打开 my.ini 文件后,按 ctrl+f 搜索 ”datadir“ 就可以找到你数据库的 阅读详情

数据库必须具备的四个特性

1:原子性:事务包含的所有操作要么全部成功,要么全部失败回滚;成功必须要完全应用到数据库,失败则不能对数据库产生影响;

2:一致性:事务执行前和执行后必须处于一致性状态,

例:用户A和用户B的前加起来一共是5000; 无论AB用户之间是如何相互转换的,事务结束后两个用户的钱加起来还是5000,这就是事务的一致性。

 

3:隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的操作所干扰,多个并发事务之间要相互隔离;

 

4:持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便在数据库系统遇到故障的情况下也不会丢失事物的操作。

 

隔离性:当多个线程都开启事务来操作数据库中的数据时,数据库系统要进行隔离操作,以保证各个线程获取数据的准确性。 不考虑事务的隔离性,会产生的几种问题:

01:脏读
是指一个事务处理过程里读取了另一个未提交的事务中的数据,然后使用了这个数据;
例:用户A向用户B转账100元,A通知B查看账户,B发现前确实已到账,而之后无论第二条SQL是否执行,只要该事务部提交,则所有操作都将回滚,当B再次查看账户时就会发现前其实并没有到账。
02:不可重复读
不可重复读是指在一个事务内,多次读取同一个数据,在这个事务还没有结束 ,另一个事务也访问该同一数据,但是由于第二个事务的修改,那么第一个事务两次读取的数据可能不一样,因此称为不可重复读;即同一个事务中原始数据读取不可重复。 注:不可重复读和脏读的区别,脏读是某一个事务读取另一个事务未提交的脏数据; 不可重复读则是读取前一事务提
03:幻读:
当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行修改,这种数据涉及到表中的全部数据行,同时,第二个事务也对这个表数据进行修改,这个修改是对表中新增/删除一条数据,那么操作第一个事务的用户发现表中的数据还没有修改的数据行,就好像发生了幻觉一样,这就是发生了幻读。
注:幻读和不可重复读都读取另一条已经提交的事务,所不同的是不可重复读查询的都是同一数据项,而幻读针对的是一批数据整体。
 
数据库提供的四种隔离级别:
01:Read uncommitted(读未提交):最低级别,任何情况都会发生。
02:Read Committed(读已提交):可避免脏读的发生。
03:Repeatable read(可重复读):可避免脏读、不可重复读的发生。
04:Serializable(串行化):避免脏读、不可重复读,幻读的发生。
 

注: 四种隔离级别最高:Seralizable级别,最低的是Read uncommitted级别; 级别越高,执行效率就越低; 隔离级别的设置只对当前链接有效,对JDBC操作数据库来说,一个Connection对象相当于一个链接,只对该Connection对象设置的隔离级别只对该connection对象有效,与其它链接connection对象无关。

01:Mysql的默认隔离级别是:可重复读:Repeatable read;

02:oracle数据库中,只支持seralizable(串行化)级别和Read committed();默认的是Read committed级别;

 

 

下面就四种隔离级别进行场景设计:

01: Read uncommitted 读未提交; 公司发工资了,领导把5000元打到singo的账号上,但是该事务并未提交,而singo正好去查看账户,发现工资已经到账,是5000元整,非常高兴。可是不幸的是,领导发现发给singo的工资金额不对,是2000元,于是迅速回滚了事务,修改金额后,将事务提交,最后singo实际的工资只有2000元,singo空欢喜一场。

02:Read committed 读已提交; singo拿着工资卡去消费,系统读取到卡里确实有2000元,而此时她的老婆也正好在网上转账,把singo工资卡的2000元转到另一账户,并在singo之前提交了事务,当singo扣款时,系统检查到singo的工资卡已经没有钱,扣款失败,singo十分纳闷,明明卡里有钱,为何......

03:Repeatable read 重复读 当singo拿着工资卡去消费时,一旦系统开始读取工资卡信息(即事务开始),singo的老婆就不可能对该记录进行修改,也就是singo的老婆不能在此时转账。

 

04:重复读可能出现幻读: singo的老婆工作在银行部门,她时常通过银行内部系统查看singo的信用卡消费记录。有一天,她正在查询到singo当月信用卡的总消费金额(select sum(amount) from transaction where month = 本月)为80元,而singo此时正好在外面胡吃海塞后在收银台买单,消费1000元,即新增了一条1000元的消费记录(insert transaction ... ),并提交了事务,随后singo的老婆将singo当月信用卡消费的明细打印到A4纸上,却发现消费总额为1080元,singo的老婆很诧异,以为出现了幻觉,幻读就这样产生了。

 

 

Serializabale:最高的事务隔离级别,代价花费最高,性能很低,很少使用,在此级别下,事务顺序执行,避免上述产生的情况。


UE4逆向实战:如何快速定位UWorld和GName的5种实用技巧(含版本差异分析) 本文详细介绍了UE4逆向工程中快速定位UWorld和GName的5种实用技巧,包括特征码定位法、动态行为分析法、静态符号分析法等,并针对不同版本差异提供了适配方案。特别强调了UWorld作为游戏世界核心容器和GName作为名称管理系统的重要性,帮助开发者高效进行游戏逆向分析。 阅读详情

相关推荐

【原创理论】Stochastic Coupled Dyadic System (SCDS):一个用于两性关系动力学建模的随机耦合系统框架

基于二人爱情耦合系统动力学、稳定性与最优策略的综合性理论的数值模拟与分析

weixin_44695861的博客 1134

数据库基本特性

一个事务是 只包含所有读/写操作成功的集合。数据库的 ACID 特性:Atomicity(原子性)Consistency(一致性)Isolation(隔离性)Durability(持久性)1.原子性:原子性任务是一个独立的操作单元,是一种要么全部是,要么全部不是的 原子单位性操作。2.一致性:事务必须始终保持一致性的状态,不管单位时间内 事务并发数是多少。如果一个操作触发辅助操作(级联、触发器等...

restreamjh的专栏 1万+

FPGA实现高效数字下变频:CORDIC与CIC滤波器的Verilog优化设计

本文深入探讨了FPGA实现高效数字下变频的技术方案,重点介绍了CORDIC算法与CIC滤波器的Verilog优化设计。通过详细的算法原理分析、FPGA实现技巧和实战经验分享,展示了如何利用CORDIC的旋转运算替代乘法操作,以及CIC滤波器在降采样中的高效性能。文章还提供了完整的系统集成方案和资源优化策略,为无线通信和雷达信号处理领域的工程师提供了实用参考。

redis7keeper的博客 721

数据库四大特性

数据库系统必须维护事务的以下特性(简称ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) ⑴ 原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 ⑵ 一致性...

sinat_38195280的博客 7964

用Cloudflare Worker搭建你的私人Gemini Pro API

文章介绍如何通过开源项目gemini-cli-openai将谷歌Gemini模型转换为兼容OpenAI API的服务,解决Gemini CLI的三大使用障碍:网络访问、命令行操作和生态整合问题。部署流程主要包括获取Google OAuth2凭证、配置Cloudflare Worker项目并设置KV存储,最终可在CherryStudio等图形客户端中调用Gemini。该方法利用Cloudflare全球网络实现加速访问,同时保持认证信息安全可控。

Hsiao的二进制生活 1683

WorldQuant Brain Alpha 生成器

一个自动化工具,通过参数优化和回测来挖掘高质量的量化交易 Alpha 因子,并自动提交符合标准的因子。

weixin_37582383的博客 1万+

数据库必须具备的四个特性

转发:https://www.cnblogs.com/melody210218/p/7120559.html

蓝斌星的博客 1754

linux应用程序段错误调试

一、堆、栈 在分析段错误之前,先了解一下什么是堆?什么是栈? 堆:一般由开发者分配释放,如果没有释放,程序结束时,在有的OS中可能会被自动释放,分配方式类似于链表。堆的操作方式为,队列优先,先进先出的原则。 栈:由操作系统自动分配,存放函数的参数值,局部变量。栈的操作方式为,先进后出的原则。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。  PUSH:操作在堆栈的顶部加入一个元素...

农村种地人 1111

数据库的四大特性

1、数据库的四大特性 原子性:事务内包含的所有操作要么全部成功,要么全部失败回滚;实现:日志,将所有的更新操作全部写入日志当中,若因为一些系统奔溃/断电等原因导致事务中的部分更新操作已经执行,部分操作未执行,则通过回溯日志,将操作回滚,使系统保证原子性以及一致性; 一致性:不管任何时间有少个并发的事务,系统也必须保持一致; 隔离性:多个并发的事务的操...

qq_36959774的博客 1万+

游戏大厂状态同步与帧同步技术全解析——让虚拟世界万物协同的“时间齿轮”

本文深入解析了大厂游戏开发中的两种核心同步技术:状态同步和帧同步。状态同步适合大型MMO和FPS游戏,由服务端计算并广播世界状态;帧同步则通过统一操作输入实现MOBA和RTS游戏的绝对公平。文章详细比较了两者的差异、适用场景和底层实现原理,并揭秘了《王者荣耀》《PUBG》等热门游戏的同步机制。同时探讨了本地预测、延迟补偿、防作弊等关键技术,以及未来AI和云游戏带来的同步新挑战,为开发者提供了全面的技术参考和实践指南。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 919

在Windows10上安装WSL2

WSL2是微软提供的Windows子系统,允许在Windows 10和11上运行Linux环境,提供更好的性能和兼容性。安装WSL2需要启用WSL功能、更新系统、安装WSL2内核,并设置为默认版本。之后,可以通过Microsoft Store安装Linux发行版,并使用WSL命令启动和管理它们。

howard2005的专栏 5940

【数据库】数据库四大特性ACID

一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析。 // 创建数据库 create table account( idint primary key not null, namevarchar(40), moneydouble ); // 有两个人开户并存钱 insert into a...

tp_0moyi0的博客 3199

【PCIe EP 设备入门学习专栏 -- 8 PCIe EP 架构详细介绍】

Synopsys PCIe 5.0 EP 架构由多个功能模块组成,整体遵循分层 + 模块化设计CXPL(事务层 + 链路层 + 物理层 MAC)XADM(仲裁/生成)、XAIM(应用接口)RADM(过滤/路由/Completion)CDM(配置空间)、PMC(电源管理)、LBC/DBI(寄存器访问)MSG_GEN(消息)、CXS(多芯片一致性)

CodingCos的博客 381

【MySQL】面试必问 : 并发执行事务可能存在的问题, 事务的四种隔离级别

MySQL 中面试必问内容, 非常重要 ! ! 介绍了并发执行事务事存在的幻读, 不可重复读, 幻读问题, 以及四种隔离级别下能够不同程度的解决这些问题

yzhcjl_的博客 785

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

面试总结:事务的特性ACID,事务的并发问题,事务隔离级别,JDBC如何进行事务处理【****】

文章目录1.事务具有ACID四个特性:2.事务的并发问题三类数据读取问题:两类丢失更新问题3.事务的隔离级别:4.JDBC如何进行事务处理: 1.事务具有ACID四个特性: 1)原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生 2)一致性(Consistency):事务在完成后数据的完整性必须保持一致 3)隔离性(Isolation):多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间的数据要相互隔离 4)持久性(Durabi

华山栈道的博客 243

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

面试八股之MySQL篇4.2——事务篇——并发事务问题、隔离级别

🔥本篇概览:详细讲解了mysql中的并发事务问题、隔离级别

做一个善良的人,做好自己的事,如果愿意,再发一份光。 868

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

springboot 面试题 事务并发问题-事务的隔离级别

脏读:当前事务读取了其它事务更新但是没有提交commit的值 开发中,用读已经提交即可 隔离级别解决并发问题的能力见下表 测试-repeatableRead-可重复读 第一步查出来价格60 第二步:更改数据库 60改为600 测试-readCommit-读已经提交同理 ...

面朝大海,春暖花开 658

java面试4之事务并发会产生的问题和事务的四种隔离级别

读问题 脏读:一个事务读取到另一个事务尚未提交的数据 不可重复读:一个事务读取到另一个事务已经提交提交的数据,通常为update引发的问题。 幻读:一个事务读取到另一个事务已经提交提交的数据,通常为insert或delete引发的问题。 注: 并发:同一时间段,多个事务在同时发生 并行:同一时刻,多个事务同时发生 隔离级别 读未提交:任何问题都没有解决; 读已提交:解决了脏读(数据库系统默认的隔离级别); 可重复读: 解决了脏读和不可重复读(Mysql默认的隔离级别); 串行化:解决了所有读问题; ...

liuyanaoao的博客 359

事务会出现哪些并发性问题?解决,事务的隔离级别(面试题)

事务概述 首先,提出两个问题,然后带着问题讨论事务相关的知识点,最后来解决这两个问题并回答前文的问题。 第一个问题,事务是否可以并发? 第二个问题,数据库是怎么隔离事务的? 事务的表现特性 数据库中执行事务涉及到很多方面,包括如何处理临界资源,如何加锁解锁等等。但是无论事务如何执行,都需要保证以下几个特性: 原子性(Atomic):事务包含的所有操作,要么全做,要么全不做回滚; 一致性(Consi...

Edcee300015的博客 1679

Mysql面试专题-事务

开始Mysql数据库面试知识的复习和资料的收集,本篇文章会不断更新,本系列文章主要分为两部分,一部分是该专题所涉及的相关基础知识,另一部分是面试题与思考题,大部分重要知识和基础知识的延伸会在面试题和思考题中给出,这样做的目的是给出具体的场景,便于理解知识(相较于直接在知识中展出),且我会以相对口语化的方式叙述。建议关注,随着我复习的进度,内容会一直得到补充事务是一组操作的集合,一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或撤销请求,这些操作要么同时成功,要么同时失败。

2301_79232523的博客 1296

JAVA面试准备之数据库 锁模块(3)事务隔离级别以及各级别下的并发访问问题

事务并发访问引起的问题以及如何避免? 更新丢失,即一个事务的更新覆盖了另一个事务的更新。——mysql所有事务隔离级别在数据库层面上均可避免。 脏读,即一个事务读到另一个事务未提交的更新数据。——已提交读Read-committed事务隔离级别以上可避免。 不可重复读,即事务A多次读取同一数据,事务B在事务A多次读取过程中对数据进行了更新并提交,导致事务A前后读取到的数据不一致。——可重复读...

与 266

Innodb中的事务隔离级别和锁的关系,这个问题难倒一半面试者!

我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。

m0_73311735的博客 560

Java 面试题:事务隔离级别以及并行事务会出现什么问题&&怎么解决脏读、不可重复读和幻读问题 --xunznux

Read View 是 InnoDB 实现 MVCC 的核心,它确保了在事务执行过程中快照读操作的一致性。通过维护一个活跃事务的列表和相关的事务 ID 边界,Read View 能够精确地判断哪些数据版本对当前事务可见,哪些不可见,从而避免出现脏读、不可重复读等并发问题。

weixin_44615954的博客 1549

阿里面试官必问:事务四大隔离级别详解!分别解决什么问题?MySQL默认级别终于讲透!

数据库面试高频绝杀题:事务四大隔离级别。每个隔离级别能解决什么问题?会残留什么问题?MySQL默认级别是哪个?为什么不用最高级别?瞬间答崩、逻辑混乱、扣分严重。本文一次性讲透四大隔离级别、对应脏读/不可重复读/幻读解决情况、优缺点、MySQL默认级别原理,面试直接满分背诵!RC 解决脏读RR 解决不可重复读(MySQL默认)串行化解决幻读,但是最慢。

程序员夏洛的博客 348

service和controller都加了事务_面试必看 | 回答出这两个问题,你才算真的懂了事务隔离级别...

作者:旺德 / 孟勃荣谈到事务隔离级别,开发同学都能说个八九不离十。脏读、不可重复读、RC、RR...这些常见术语也大概知道是什么意思。但是做技术,严谨和细致很重要。如果对事务隔离级别的认识,仅仅停留在大概知道的程度,数据库内核研发者可能开发出令用户费解的隔离级别表现,业务研发者可能从数据库中查出与预期不符的结果。那么如何判断自己是不是对事务隔离级别有了较为深入的理解了呢?开发同学可以问自己这样两...

weixin_39921504的博客 142
上一篇: Spring WebFlux快速上手——响应式Spring的道法术器
下一篇: Spring学习总结(一)——Spring实现IoC的多种方式
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值