万字总结!腾讯、字节跳动面经已发

二、常见的并发问题

1、脏读

一个事务读取了另一个事务未提交的数据

2、不可重复读

一个事务对同一数据的读取结果前后不一致。两次读取中间被其他事务修改了

3、幻读

幻读是指事务读取某个范围的数据时,因为其他事务的操作导致前后两次读取的结果不一致。幻读和不可重复读的区别在于,不可重复读是针对确定的某一行数据而言,而幻读是针对不确定的多行数据。因而幻读通常出现在带有查询条件的范围查询中

三、事务隔离级别

1、读未提交(READ UNCOMMITTED)

可能产生脏读、不可重复读、幻读

2、读已提交(READ COMMITTED)

避免了脏读,可能产生不可重复读、幻读

3、可重复读(REPEATABLE READ)(mysql默认隔离级别)

避免了脏读,不可重复读。通过区间锁技术避免了幻读

4、串行化(SERIALIZABLE)

串行化可以避免所有可能出现的并发异常,但是会极大的降低系统的并发处理能力

四、数据库日志有哪些?

1、undo日志

undo日志用于存放数据修改被修改前的值

UNDO LOG中分为两种类型,一种是 INSERT_UNDO(INSERT操作),记录插入的唯一键值;

一种是 UPDATE_UNDO(包含UPDATE及DELETE操作),记录修改的唯一键值以及old column记录。

2、redo日志

mysql会将一个事务中的所有sq先l记录到redo log中,然后再将记录从redo log同步到数据文件中

它可以带来这些好处:

  • 当buffer pool中的dirty page 还没有刷新到磁盘的时候,发生crash,启动服务后,可通过redo log 找到需要重新刷新到磁盘文件的记录;
  • buffer pool中的数据直接flush到disk file,是一个随机IO,效率较差,而把buffer pool中的数据记录到redo log,是一个顺序IO,可以提高事务提交的速度;

3、binlog日志

用于数据库主从复制的记录,是二进制格式。在事务提交之后进行一个磁盘写入。

这里注意下redo log 跟binary log 的区别,redo log 是存储引擎层产生的,而binary log是数据库层产生的。假设一个大事务,对tba做10万行的记录插入,在这个过程中,一直不断的往redo log顺序记录,而binary log不会记录,直到这个事务提交,才会一次写入到binary log文件中

五、数据库事务控制

1、默认情况下,开启事务自动提交功能。每执行一个sql,都会对应一个事务的提交

2、spring会将底层连接的自动提交特性设置为false。使用手动提交

六、事务的ACID特性

1、原子性(Atomicity)

事务中的所有操作作为一个整体像原子一样不可分割,要么全部成功,要么全部失败。

2、一致性(Consistency)

事务的执行结果必须使数据库从一个一致性状态到另一个一致性状态。一致性状态是指:1.系统的状态满足数据的完整性约束(主码,参照完整性,check约束等) 2.系统的状态反应数据库本应描述的现实世界的真实状态,比如转账前后两个账户的金额总和应该保持不变。

3、隔离性(Isolation)

并发执行的事务不会相互影响,其对数据库的影响和它们串行执行时一样。比如多个用户同时往一个账户转账,最后账户的结果应该和他们按先后次序转账的结果一样。

4、持久性(Durability)

事务一旦提交,其对数据库的更新就是持久的。任何事务或系统故障都不会导致数据丢失。

5、redo log和undo log实现了原子性、一致性、持久性

一线互联网大厂Java核心面试题库

image

实现了原子性、一致性、持久性

一线互联网大厂Java核心面试题库

[外链图片转存中…(img-GHq2LjwX-1624225543008)]

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等…已整理上传在我的腾讯文档【一线互联网大厂Java核心面试题库】点击即可领取,并会持续更新…感兴趣的朋友可以看看支持一波!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ncbi查找目的基因序列_NCBI大搜索之目的基因寻踪

NCBI大搜索之目的基因寻踪最近经常碰到查找目的基因的问题,那今天就讲一下如何利用NCBI数据库查找目的基因!NCBI(National Center For Biotechnology Information),美国国家生物技术信息中心,分子生物学,生物化学及遗传学领域常用…

万字长文!2020-2021京东Java面试真题解析

我整理的spring学习笔记: 像spring这种知识点我们不能盲目的学习,首先我们得有一套学习路线,我总结了一套spring的学习思维导图,今天通过我整理的Spring学习路线.xmind给大家分析spring需要掌握的一些核心知识点。 spring的特点&…

echarts label固定位置_ECharts+百度地图网络拓扑应用

前一篇谈及到了ECharts整合HT for Web的网络拓扑图应用,后来在ECharts的Demo中看到了有关空气质量的相关报表应用,就想将百度地图、ECharts和HT for Web三者结合起来也做一个类似空气质量报告的报表拓扑图应用,于是有了下面的Demo&#xff1a…

三年Java开发,你连基础的JVM运行时内存布局都忘了

面:为什么要使用双亲委派机制去加载类? 答:避免多份同样字节码的加载,浪费内存。 类的加载方式 隐式加载:new显示加载:loadClass、forName等 类的装载过程如下图: 面:loadClass和…

vue实现可编辑的文字_苹果还自带文字转语音,只要一键按下便可实现,今天分享给大家...

如果想将文字转成语音,那大家平时都是怎么操作?下面小编就为大家介绍手机,电脑上都可以使用的方法,让我们一起来看看吧!一、手机端操作1、苹果手机其实苹果手机就自带了文字转语音功能,只要打开手机&#x…

三面美团Java岗,面试竟然被这31道Java基础题难倒了

01 分布式限流:NginxZooKeeper 1.1 分布式限流之Nginx 请解释一下什么是 Nginx? 请列举 x Nginx 的一些特性。 请列举 x Nginx 和 和 Apache 之间的不同点 请解释 x Nginx 如何处理 P HTTP 请求。 在 x Nginx 中,如何使用未定义的服务器名称来阻止…

海龟绘图小动物_震惊!被塑料绳勒成两半的海龟

海洋,其实离人类很近,我们在追逐沙滩和日落,享受美味的海鲜的时候,可曾想到我们平时的一些很随意的行为,会给一些海洋生物带来无法恢复的伤害,甚至夺取它们的生命。或许人们的冷漠无知尚未得到惩罚&#xf…

上海大厂Java面试经历:初步理解类加载运行机制和类加载过程

volatile相关经典面试题 谈谈volatile的特性volatile的内存语义说说并发编程的3大特性什么是内存可见性,什么是指令重排序?volatile是如何解决java并发中可见性的问题volatile如何防止指令重排volatile可以解决原子性嘛?为什么?v…

mysql数据库优化面试

前言 现在Java程序员面试都是因为没有丰富的工作经验和自己过硬的技术,所有都不知道一般互联网应该会问什么技术问题,加上自己可能去面试的时候没有准备的太充分,一面试刚跟面试官扯几个面试题就不知道自己在哪里了,被怼的体无完…

mysql数据库备份方式,跳槽大厂必看!

NO1:说说zookeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现(Chubby是不开源的),它是集群的管理者,监视着集群中各个节点…

mysql数据库安装教程32位,看这一篇就够了!

字节跳动 ⾯试前⼀⾯⼆⾯⼩结 ⾯试前 头条的⾯试是三家⾥最专业的,每次⾯试前有专⻔的HR和你约时间,确定OK后再进⾏⾯试。每次都是通过视频⾯试,因为都是之前都是电话⾯或现场⾯,所以视频⾯试还是有点不⾃然。也有⼈觉得视频⾯试…

java cron工具类_Java工具类之:包装类

我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工具类,你会发现它能很大…

mysql数据库安装,真香!

Spring Security观后感——手绘思维脑(供参考) 手绘的思维导图,是我自己根据自身的情况读完这套阿里出品的Spring Security王者晋级文档之后所绘的,相当于是一个知识的总结与梳理,我将其分为“核心组件”与“工作原理/认证流程”。 Spring Se…

mysql数据库实用教程答案

前言 数据库相关的面试题早已成为了一线互联网大厂面试的家常菜,如果你对数据库不太熟悉,我劝你不要轻易面试大厂。那么,为什么数据库成了大厂面试的家常菜呢?主要原因当然还是海量数据。 无论对于刚入行的小白还是有几年Java开…

在idea中新建的text文件_开发属于自己的第一款 IDEA 插件!

往期热门文章:1、《往期精选优秀博文都在这里了!》2、又一个程序员跑路删库跑路被抓了,导致服务器瘫痪 36 个小时!3、恕我直言,有了这款 IDEA 插件,你可能只需要写 30% 的代码。。。4、Java8 的 Stream API 的确牛X&am…

mysql数据库开发的36条军规

前言 一般的小项目,比如几百人左右访问的项目,访问量几万的项目,如果想用缓存,单机实例完全够用。小黄图就是用的阿里云256MB配置的Redis缓存,日几千的访问量是妥妥够用的了。Redis号称可以支撑10wqps,当然…

mysql数据库引擎怎么看,值得收藏!

什么是Service Mesh 作为Service Mesh技术探索和实践的先行者,全球第一个真正的Service Mesh项目Linkerd负责人、Buoyant公司创始人兼CEO William Morgan第一次完整地阐述了Service Mesh。按照William Morgan的定义,Service Mesh是一个致力于解决服务间…

mysql数据库文件位置

01 前言 辛苦奋斗两个月,秋招终于圆满收官,拿到了头条、字节、菜鸟、腾讯、网易的offer,这要多亏了意外得到的这份资料文档,这么多面试全都靠它了,哈哈~~有好东西还是要分享出来给大家,一起学习呀 Java核心…

mysql数据库连接失败,挑战大厂重燃激情!

一、阿里 (会员中台) 1. Java 重写hashcode()是否需要重写equals(),不重写会有什么后果 2. 并发 自旋锁和阻塞锁的区别公平锁和非公平锁的区别jdk中哪种数据结构或工具可以实现当多个线程到达某个状态时执行一段代码栅栏和闭锁的区别如何…

mysql 链式查询_MySQL的链接查询

内连接 inner join ....on...../join ....on... :将两个表中同时符合on条件的记录查询出来 inner可以省略select *from person inner join card on person.cardidcard.cardid;外连接 分为左连接、右连接,完全连接左连接:left join ....on…