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