关于索引中如何运行二分法查询的问题

来源:8-2 数据库分片前的准备

烈焰卡卡

2020-03-22

老师好!想请教一个mysql b+树索引的问题。都说mysql的索引数据页,查询时是通过二分法找到要查数据所在的下一页指针。但是比如我做索引的字段是一个varchar的索引数据页或者主键索引叶子节点中的数据,长度可变,那如何在从文件中读出页的16k数据中做二分法呢?还是说读出整个页到内存,再遍历一遍在内存中序列化,再做二分法呢?

写回答

1回答

sqlercn

2020-03-22

Innodb从磁盘读取数据的最小单位就是页,也就是说一次会把整个页都读到内存中。

0
5
烈焰卡卡
回复
sqlercn
哦哦是这样,但是第一步读出来的时候,是把磁盘内容加载到内存吧。后面即使按照定义长度分配空间,也相当于做了一步序列化操作吧,不然数据是16k连在一起的
2020-03-22
共5条回复

MySQL提升课程 全面讲解MySQL架构设计

面面俱到讲解影响MySQL性能的各个因素,让MySQL架构了然于胸。

4419 学习 · 547 问题

查看课程