前言

面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识)分为MySQL+Java+Redis+算法+网络+Linux等六类,接下来分享一下我的这次阿里一面面经+一些我的学习笔记。

01. 基础架构:一条SQL查询语句是如何执行的?

MySQL 的逻辑架构图

02. 日志系统:一条SQL更新语句是如何执行的?

之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?

03. 事务隔离:为什么你改了我还看不见?

提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。

转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用到“事务”这个概念了。

说说索引(上)

提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?

说说索引(下)

06. 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。

07. 行锁功过:怎么减少行锁对性能的影响?

MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB是支持行锁的,这也是 MyISAM 被 InnoDB 替代的重要原因之一。

08. 事务到底是隔离的还是不隔离的?

09. 普通索引和唯一索引,应该怎么选择?

10. MySQL为什么有时候会选错索引?

不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于MySQL选错了索引,而导致执行速度变得很慢?

11. 怎么给字符串字段加索引?

现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是要讨论的问题。

12. 为什么你的MySQL会“抖”一下?

平时的工作中,不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。看上去,这就像是数据库“抖”了一下。今天,我们就一起来看一看这是什么原因。

13. 为什么表数据删掉一半,表文件大小不变?

我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变?

14. count(*)这么慢,你该怎么办?

在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数。这时候你可能会想,一条select count(*) from t 语句不就解决了吗?

但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢。然后你可能就想了,MySQL 怎么这么笨啊,记个总数,每次要查的时候直接读出来,不就好了吗。

15. 日志和索引相关问题

两阶段提交示意图

16. “order by”是怎么工作的?

17. 如何正确地显示随机消息?

18. 为什么这些SQL语句逻辑相同,性能却差异巨大?

在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。

我今天挑选了三个这样的案例和你分享。希望再遇到相似的问题时,你可以做到举一反三、快速解决问题。

19. 为什么我只查一行的语句,也执行这么慢?

20. 幻读是什么,幻读有什么问题?

21. 为什么只改一行的语句,锁这么多?

22. MySQL有哪些“饮鸩止渴”提高性能的方法?

不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内、临时性地提升一些性能。

23. MySQL是怎么保证数据不丢的?

24. MySQL是怎么保证主备一致的?

大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?咱们就好好唠唠这个问题。

25. MySQL是怎么保证高可用的?

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以免费送给我的读者朋友们:

目录:

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

Java面试核心知识点

片转存中…(img-DDIBOEW0-1624472816155)]

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

[外链图片转存中…(img-wIOwddoA-1624472816156)]

Java面试核心知识点

资料的领取方式:点赞后【戳面试资料】即可免费获取哦!

面试分享一次失败的经历相关推荐

  1. 面试分享:那些年我经历过的一些面试,以及得到的一些面试心得!

    在 2017 年,我参加了 '计算机行业中的女性' 的Grace Hopper 庆祝活动.这个活动是这类科技活动中最大的一个.共有 17,000 名女性IT工作者参加. 这个会议有个大型的配套招聘会, ...

  2. 大数据岗位面试失败的经历总结,这些面试的坑莫在踩

    本人住在有人间天堂之称的城市,6年多开发经验,最近2年主要在做大数据相关的开发,最近考虑换工作,基本也只考虑大数据相关岗位.目前新工作已经找好,但想分享一下最近面试的失败一些经历(成功的那些就不讲了) ...

  3. 字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

    字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么 前言: 金九银十过了金三银四还会远嘛,本文后面分享面试题给正准备跳槽,准备找工作的你,这次面试字节跳动也是做了很多的准备,还好顺利拿到了o ...

  4. 【面试分享】GitHub上Star大佬是如何一举拿下7家一线互联网大厂的Offer

    本文作者是牛客网知名大佬 CyC2018,在他的 GitHub 有一个高达 40K Star 的技术仓库(在所有仓库中排名前五十),可以说在开源项目方面是一骑绝尘的牛人.今天我们分享一下他的求职经历. ...

  5. 面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天...

    原标题:如何看Spring源码.Java每日六道面试分享,打卡第二天 想要深入的熟悉了解Spring源码,我觉得第一步就是要有一个能跑起来的极尽简单的框架,下面我就教大家搭建一个最简单的Spring框 ...

  6. 愈挫愈勇,谁没个失败的经历与挫折

    谁没个失败的经历与挫折 聊一下大学期间保研与考研,实习与找工作一些事. 回首当初,经历了夏令营->保研->考研->实习->找工作. 本科是某医学院非医学专业,跨保计算机,海投了 ...

  7. 万字面试分享贴!从十二个角度解析面试全流程!附互联网公司Offer难度系数分析...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨ELon Z 来源丨AI机器学习与知识图谱 编辑丨极市平台 本 ...

  8. 初到深圳面试分享(下)

    承接上文:< 初到深圳面试分享(上) > 简单就几家印象较深的公司,简单聊聊吧. 1.初衷的公司 在面试奔波的近两周时间里,由最初到深圳的无厘头,到不断跟技术经理和HR的沟通,慢慢确定自己 ...

  9. 【前端面试分享】- 寒冬求职下篇

    前言 越来越多的公司都在面试前加入了笔试环节. 有的甚至会根据你的笔试答题情况来决定是否进入面试环节. 当然,进入面试环节,也会时不时的出几道算法或者其他类型的相关的题目让你写出来. 所以不仅要会说, ...

  10. 2017面试分享(js面试题记录)

    2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2'a8' * 3 2. 一道this的问题 var num = 10;var obj = {num:8,inner: {num ...

最新文章

  1. 数据解析1:XML解析(3)
  2. 从零单排之玩转Python安全编程(II)
  3. 从attention到Transformer+CV中的self-attention
  4. 复习各种符号 字符 巩固基础2
  5. 云上资源编排1.0到2.0的设计开发思考(含招聘)
  6. iOS 字体大小适配
  7. 航空订票系统java_航空订票系统(JAVA+SSH+MYSQL)
  8. ASM1053E ASM1153E对比
  9. LINUX矩阵键盘简单介绍,矩阵键盘程序流程图详细介绍
  10. 音视频5.1——MediaCodec 同步方式完成AAC硬解成PCM
  11. 使用 RSA 算法进行加解密,签名和验签
  12. 2022北京冬奥会开幕式视觉盛宴技术揭晓
  13. shell 编程 入门到实战详解
  14. 7-7 到底是不是太胖了
  15. .o0博客导读0o. 12/13/2010最后更新
  16. #Linux基础(三)
  17. python爬虫必备防检测工具
  18. 废除闰秒真的有必要吗?不废除会有哪些影响?
  19. mysql增加列耗时_实战-130W表增加字段耗时
  20. 国内12所最奢华的图书馆,看到这儿我愿意再考一年!

热门文章

  1. 导弹拦截(标题还有字数要求qwq)
  2. 验证手机号或座机号的合法性
  3. ARM/计算机体系结构
  4. Android 9.0 USER_ROTATION重启后恢复默认值
  5. 利用XML文件以及集合方法设计简单超市管理系统的Java程序
  6. IO流---Reader和Writer
  7. 超级好上手的告白小程序
  8. 【网络设备】H3C FW V7:安全域与域间策略
  9. 基于51单片机的蓝牙小车制作【新手向
  10. 当520遇到MicroPython,单身极客狗也能很开“芯”~