对于B+树,为什么说一般查找行记录,最多只需1~3次磁盘IO
一个页的大小是16kb,主键的类型一般为int(4字节)或者bigint(8字节),而指针的大小也是4字节或者8字节,所以一个页中大概能存储 16kb/(8+8)b =1k 个键值,(为了方便计算,这里k取10^3,并假设一个页中能存储 10 ^ 3条记录),那么当B+树的高度为3时,最多能存储 (10 ^ 3 * 10 ^ 3 * 10 ^ 3 =10亿条记录)
但是在实际情况中每一个数据页可能不会存满,所以在数据库中,树的高度可能为2~4层,但是由于根节点是常驻内存的,所有我们查询一条行记录,最大只需要1 ~ 3 次的磁盘IO