【面试官】一条SQL,我怎么知道它有没使用到索引?

  • 面试官:知道索引有什么类型吗?
  • 面试官:B树索引说一下?
  • 面试官:你刚刚说值都存储在叶子节点,那有什么好处?
  • 面试官:知道为什么主流数据库引擎不采用哈希索引吗?
  • 面试官:聚簇索引和二级索引有什么关联?
  • 面试官:那我一条SQL,我怎么知道它有没使用到索引?
  • 面试官:有没索引失效的情况呢?
  • 👉以贴近现实的【面试官面试】形式帮助你系统学习后端技术
  • 📚本期是《MySQL系列》,其他系列博客请订阅专栏《Java Offer训练营》
  • ❤创作不易,不妨点赞、收藏、关注支持一下

alt

文章目录

  1. 索引类型
    1. B-Tree索引
    2. B-Tree值的存储
    3. 哈希索引
  2. 聚簇索引
  3. 索引效率
    1. 索引失效情况

1. 索引类型

面试官:知道索引有什么类型吗?

知道的,我了解的主要有B树索引、哈希索引。


面试官思考中…


1.1 B-Tree索引

面试官:B树索引说一下?

好的面试官。

  1. 结构方面,B-Tree不同于二叉搜索树,它是多子树的
  2. 值的存储方面,所有的值都存储在叶子节点,且叶子节点可以存储多个值
  3. 另外叶子节点之间用指针链接形成双向链表。如果是二级索引建立的B-Tree,每个叶子节点的值有保存对应行数据的主键

alt


面试官思考中…


1.2 B-Tree值的存储

面试官:你刚刚说值都存储在叶子节点,那有什么好处?

嗯有两方面。

值都存储在叶子节点,使得非叶子节点层数更少,整棵B-Tree的高度变得矮胖,可以提高搜索的效率

另外业务上一般都是范围查询,值都存储叶子节点同时形成双向链表,很适合范围查询。


面试官思考中…


1.3 哈希索引

面试官:知道为什么主流数据库引擎不采用哈希索引吗?

hhh就像我刚刚说的,业务上一般都是范围查询,而哈希索引不支持任何范围查询。

哈希索引会为所有的索引列计算一个哈希码,在哈希表中保存哈希码和指向每个

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java Offer训练营 文章被收录于专栏

👉覆盖Java程序员所需掌握的Java核心知识、面试重点 👉成体系知识帮你在后端进阶,每一道面试官问答助你怒怼大厂面试官,收获大厂offer 👉《Java Offer训练营》包含Java系列、Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉花费大量精力去制作本专栏,创作不易各位的支持就是我创作的最大动力

全部评论
666
点赞
送花
回复
分享
发布于 04-16 21:04 广东
支持支持
点赞
送花
回复
分享
发布于 04-25 23:38 广东
滴滴
校招火热招聘中
官网直投

相关推荐

2 7 评论
分享
牛客网
牛客企业服务