首页 > 索引的底层原理
头像
Offer多多_大厂面经分享
发布于 01-18 17:02 上海
+ 关注

索引的底层原理

面试题简述

你能说一下数据库索引的底层原理吗?为什么 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 次数最少,所以最终规则都是围绕磁盘展开的。

全部评论

(1) 回帖
加载中...
话题 回帖

近期热帖

热门推荐