首页 > 其他分享 >面试随记(更新中...)

面试随记(更新中...)

时间:2022-11-18 18:13:47浏览次数:44  
标签:... 事务 读取 隔离 幻读 T1 面试 级别 随记

Java部分:

MySQL部分:

1、什么是脏读、幻读、不可重复读

脏读指的是一个事务(T1),读取到了第二个事务(T2)未提交的数据
不可重复读指的是一个事务(T1),读取完数据之后处理其他事情,但是在T1事务结束之前,第二个事务(T2)对数据进行了修改,导致T1事务无法再读取原始数据
幻读和不可重复读有点类似,一个事务(T1),读取完数据之后处理其他的事情,但是在T1事务结束之前,第二个事务(T2)对数据进行了插入删除,导致T1无法读取原始数据

区别

脏读读取的是未提交的数据,而不可重复读读取的是已经提交的数据
不可重复读读取的是修改的数据,而幻读读取的是插入删除的数据。

如何避免这三种情况

幻读和不可重复读只需要将满足条件的行进行锁定,脏读的话需要对表进行锁定。

事务的隔离级别是怎样的

在MySQL中事务的隔离级别有四种,如下图所示(这四种在面试过程中经常问到,但是在实际开发过程中并不需要调整)
从上到下,事务隔离级别由低到高,并发量和数据吞吐量由高到低
1、READ UNCOMMITTED可读未提交,这种隔离级别是最低的隔离级别,但是对于高并发和数据吞吐量是最高的,可读未提交可以直接造成脏读,可能会引发不可重复读和幻读,
2、READ COMMITTED可读已提交,这种隔离级别高于可读未提交,这种事务隔离级别读取的是已经提交的数据,可能会造成幻读和不可重复读
3、REPEATABLE READ可重复读(MySQL默认的事务隔离级别),不会造成不可重复读,但是除了Innodb引擎以外的其他引擎可能会造成幻读的情况
4、SERIALIZABLE可串行读,这种事务的隔离级别是最高的,但是并发和吞吐量是最低的,不会造成脏读、幻读、不可重复读,但是会造成锁表的情况,即当一个事务(T1)在对加锁读的表操作时,其他事务无法进行操作,只能等T1事务结束后去操作
image

如何操作事务的隔离级别

获取当前的事务隔离级别

> SHOW VARIABLES LIKE 'transaction_isolation'; #默认显示的应该是REPEATABLE-READ

设置事务隔离级别,以设置为可读未提交 READ UNCOMMITTED

> SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

但是现在并不会对事务的隔离级别进行操作,因为在MySQL5.1之后默认的事务隔离级别就是REPEATABLE READ,而存储引擎就是InnoDB因此,MySQL默认REPEATABLE READ也可以解决幻读的问题

标签:...,事务,读取,隔离,幻读,T1,面试,级别,随记
From: https://www.cnblogs.com/porterdong/p/16662587.html

相关文章

  • 面试记录 二
    自我介绍数组操作,什么操作会改变原数组箭头函数与普通函数的this指向问题怎么修改箭头函数的this指向v–model的原理及使用组件通信,嵌套很深的那种$nexttick原理时机说......
  • 面试记录 四
    描述一个项目,遇到啥问题、怎么解决ES6模块与common等模块区别怎么判断数组与对象json.parse与json.stringfly 及其三个参数 vue组件的异步与同步区别vue.use的作用......
  • 肖sir__面试第六天课程__app测试讲解(6.1)
    app测试1、你做过app测试吗?2、app测试和web端测试区别?3、app专项测试?4、adb命令熟悉吗?你说下常用的adb命令?5、app测试中遇到哪些问题?并且如何解决的?6、app闪退有哪些......
  • iOS面试题总结
    iOS已经到了小公司用不起,大公司不招的地步了。当然,也没有实习生要来学这个。整个移动端都太难了,今年大家都太难了。面试了一些公司,就自我总结一下吧。有空也能背一下。基......
  • uniapp 某些view下的文字超过两行变成...的操作
    最近在搞微信小程序但是某些标题太长了所以需要用到某些csstext-overflow:-o-ellipsis-lastline;overflow:hidden;//溢出内容隐藏text-overflow:ellipsis;//文本......
  • 面试官不按套路,竟然问我Java线程池是怎么统计线程空闲时间?
    背景介绍:你刚从学校毕业后,到新公司实习,试用期又被毕业,然后你又不得不出来面试,好在面试的时候碰到个美女面试官!面试官:小伙子,我看你简历上写的项目中用到了线程池,你知......
  • 记一场vue面试
    Vue修饰符有哪些事件修饰符.stop阻止事件继续传播.prevent阻止标签默认行为.capture使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行......
  • React-hooks面试考察知识点汇总
    Hook简介Hook出世之前React存在的问题在组件之间复用状态逻辑很难React没有提供将可复用性行为“附加”到组件的途径(例如,把组件连接到store)。有一些解决此类问题的......
  • 前端一面经典react面试题(边面边更)
    react的虚拟dom是怎么实现的首先说说为什么要使用VirturlDOM,因为操作真实DOM的耗费的性能代价太高,所以react内部使用js实现了一套dom结构,在每次操作在和真实dom之前,使......
  • React-Hooks怎样封装防抖和节流-面试真题
    Debouncedebounce原意消除抖动,对于事件触发频繁的场景,只有最后由程序控制的事件是有效的。防抖函数,我们需要做的是在一件事触发的时候设置一个定时器使事件延迟发生,在......