我们都知道MySQL里,索引通常用B+树来实现的.B+树的叶子结点才具体保存数据(聚簇索引保存的是行数据:普通索引是主键,如有需要得回表),非叶子结点都是用来索引叶子结点的.假设索引高度为h,那么每次索引查询都要查询h个索引页面才能找到叶子结点的索引数据.所以h的大小,势必成为索引效率的一个关键.那么通常表的索引高度h是多大呢? 我们再假设扇出系数为k,则索引里可索引key的数s=k^h. 在InnoDB里,每个页默认16KB,假设索引的是8B的long型数据,每个key后有个页号4B,还有6B…