索引的底层原理

面试题简述

你能说一下数据库索引的底层原理吗?为什么 MySQL 使用 B+Tree 作为索引结构?

面试官想听的

1、是否理解索引结构

2、为什么不用红黑树、哈希表、AVL

3、磁盘 IO 与页结构

4、聚簇索引/非聚簇索引

面试回答举例

数据库的索引底层主要是基于 B+Tree 结构,其核心目标是减少磁盘 IO

详情请参考:http://xhslink.com/o/1IqqQmwpuOi

由浅入深分析

索引核心解决两件事:

1、快速定位

2、少做磁盘 IO

磁盘读取是按页读取,所以设计索引结构时要把尽可能多的 key 放到一个页中,这就是 B+Tree 的意义。

进一步深入:

1、OS page 与 MySQL page 的关系

2、key 的大小影响 fan-out(分支因子)

3、InnoDB 的自适应哈希索引(AHI)

面试加分点

1、提到数据库索引结构不是为了让算法好看,而是为了让磁盘 IO 次数最少,所以最终规则都是围绕磁盘展开的。

#春招##大厂##MySQL##后端开发##算法#
2025八股文复盘 文章被收录于专栏

带你复盘2025大厂八股文面试,拆解面试官到底想听啥

全部评论

相关推荐

01-14 16:23
广州商学院 Java
点赞 评论 收藏
分享
joecii:如果没有工资,那可能没有工资是这家公司最小的问题了
找实习记录
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务