索引是一种排好序的数据结构,用于提升查找效率。
B+树模型
关于B树和B+树
B+树是在B树基础上优化而来
1.非叶子节点只存储冗余索引,不存储数据---->提升数据容量。
2.所有叶子节点变更为双向列表结构,可减少检索次数,提升查询性能。
select * from table where id >5 and id <100;
B+树:只需检索到叶子节点5,根据双向链表指针遍历到100即可
B树:则可能需要针对5、100分别检索2次。
MYSQL可存储数据量计算
Page默认大小:16KB
1.单个节点大小:8B+6B(索引空间+下级地址空间)
1)假设以Long作为自增主键(唯一索引),即表示索引空间为8Byte。
2)地址空间一般为6B
2.单层非叶子节点容量:16KB/(8B+6B)=1170个
3.假定叶子节点数据data<=1KB,叶子节点一个Page存储16个节点
4.一个B+树可存储节点容量:1170*1170*16=21902400(约2K万)
索引概念