首发于微信公众号:【码农在新加坡】,欢迎关注。
个人博客网站:后端面试之MySQL-InnoDB一颗B+树可以存放多少行数据?
背景
MySQL的InnoDB引擎一棵B+树
可以存放多少行数据?这是一个很有趣的面试题。
也许你会猜1千万,2千万,或者上亿条数据?
当你看完这篇文章,你就心中有数了。
最重要的是,这篇文章能让你更深入的理解InnoDB的B+树索引的方方面面。
看完这篇文章,你可以同时回答以下几个关于InnoDB B+树的面试题:
- MySQL InnoDB一颗B+树能存多少数据?
- MySQL InnoDB的B+树每个非叶子结点能有多少分支?
- MySQL InnoDB为什么使用B+树而非B树/Hash?
- MySQL InnoDB为什么推荐使用自增ID做主键?
InnoDB
索引类型
我们都知道,MySQL有多种储存引擎,比如:InnoDB
,MyISAM
,Memory
,Merge
,Archive
,CSV
,Blackhole
等。
其中最常用的储存引擎就是InnoDB,所以学好InnoDB也是理解MySQL的核心。
InnoDB支持多种索引:
- B+树索引 - 传统意义上的索引,B+树索引并不能根据键值找到具体的行数据,B+树索引只能找到行数据锁在的页,然后通过把页读到内存,再在内存中查找到行数据。B+树索引也是最常用的