众所周知,简历上“了解=听过名字;熟悉=知道是啥;熟练=用过;精通=做过东西”
相信大家对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。索引作为MySQL中比较重点的知识,在面试中出现的频率特别高。
本人自认为对MySQL的索引知识相当了解,同事们工作中也都热情的称呼我为大佬。为了进阿里,我特地花了1个月左右时间复习相关知识,自信满满的在简历上写了“精通MySQL”,想不到被阿里面试官狠狠虐了一把…(关于这次面试题目和整理的答案,有需要的同学可在文末自行领取哈)
你们每天这么大的数据量,都是保存在关系型数据库中吗?
是的,我们线上使用的是MySQL数据库。
那你们有没有对查询做一些优化呢?
我们用了索引。(由于篇幅问题,接下来的内容我只列出了阿里面试官的问题,自己能答上来的大概只有一半)
你能说说为什么B+树相对于B树在查询上会更加优胜吗?
除了上面这个范围查询的,你还能说出其他的一些区别吗?
刚刚我们聊到B+ Tree,那你知道B+Tree的叶子节点都可以存哪些东西吗?
聚簇索引和非聚簇索引,在查询数据的时候有区别吗?
刚刚你提到主键索引查询只会查一次,而非主键索引需要回表查询多次。是所有情况都是这样的吗?非主键索引一定会查询多次吗?
联合索引、最左前缀匹配
你们在创建索引的时候都会考虑哪些因素呢?你们有用过联合索引吗?
那你们在创建联合索引的时候,需要做联合索引多个字段之间顺序你们是如何选择的呢?
索引下推、查询优化
你知道在MySQL 5.6中,对索引做了哪些优化吗?
你们创建的那么多索引,到底有没有生效,或者说你们的SQL语句有没有使用索引查询你们有统计过吗?
那排查的时候,有什么手段可以知道有没有走索引查询呢?
那什么情况下会发生明明创建了索引,但是执行的时候并没有通过索引呢?
哦,索引有关的知识我们暂时就问这么多吧。你们线上数据的事务隔离级别是什么呀?
完成业务功能,要懂基本的Sql语句。
做性能优化,要懂索引,懂引擎。
做分库分表,要懂主从,懂读写分离。
做安全,要懂权限,懂备份,懂日志。
阿里等大厂很看重底层知识,为了让大家可以熟练掌握甚至“精通”MySQL优化,我特邀前美团资深专家大飞老师,为大家带来MySQL专题—— 《MySQL底层原理详解》,原价199元,公众号粉丝限时专享0.1元!
大飞老师
曾在美团、大众点评就职,担任过高级研发工程师;
渠道、资源平台研发负责人;
3. 具备一定自学能力。
课程介绍:
9.21
毫秒级SQL语句, 美团二面索引底层详剖
2、MySQL中索引使用哪些数据结构?
3、B+Tree的数据结构正确磁盘中?
4、如何通过离散性,最左匹配,回表等原则分析优秀的索引?
9.22
MySQL事务隔离深度剖析(LBCC&MVCC)
1、美团面试题目: 谈谈你对事务ACID的理解?
Github
超
“火”
的
【Java 超硬核面试 “备战” 手册】
;
程序员职业规划篇
跳槽是为了什么?不为什么?
什么时间 / 状态下跳槽最合适?
跳槽的节奏和路线图应该是怎样的?
造成面试不通过的核心原因,有哪些?
良好的心态和体态
求职简历应该如何写?
怎么“高效”寻找求职渠道?
面试准备及总结
900份简历模板
百度面试篇
腾讯面试篇
京东面试篇
头条面试篇
美团面试篇
华为面试篇
滴滴面试篇
互联网公司高频面试必备综合篇
并发编程面试题汇总
JVM面试题汇总
Netty常被问到的那些面试题汇总
Tomcat面试题整理汇总
Mysql面试题汇总
Spring源码深度解析
Mybatis常见面试题汇总
Nginx那些面试题汇总
Zookeeper面试题汇总
RabbitMQ常见面试题汇总
Kafka面试题汇总
Redis常见面试题汇总
Dubbo面试题
SpringBoot,SpringCloud面试汇总
集合框架面试题
设计模式面试题
数据库面试题
面试必备之乐观锁与悲观锁
多家互联网公司常见面试题库
Java高频核心面试题库
xxktqq168
“准备好工作效率、薪资翻倍了吗?”
本文分享自微信公众号 - 江南一点雨(a_javaboy)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。