索引是一种用来快速检索数据的一种结构, 索引使用的好不好关系到对应的数据库性能方面, 这篇文章我们就来详细的介绍一下数据库的索引。
1. 页面的大小: B+ 树索引是一种 Key-Value 结构,通过 Key 可以快速查找到对应的 Value。B+ 树索引由根页面(Root)、分支页面(Branch)和叶子页面(Leaf)组成一棵树的结构。InnoDB 中,索引页面的大小由参数 innodb_page_size 控制,默认为 16K。
2. 行的大小: innoDB 对行的长度有一定的限制,每行记录的长度不能超过页面大小的一半。对于 16K 的页面大小,1 行记录最长大概在 8000 字节多一点。如果 1 行记录平均长度为 200 字节,那么一个页面最多可以容纳八十多行记录
3. key, value:
- 在分支页面中,Value 存了下一层索引页面的编号(Page No),页面编号就是页面在数据文件中的地址。
- 而在叶子页面中,Value 又是什么呢?
对于 InnoDB 的二级索引,你可以认为叶子页面中不存 Value,
而对于聚簇索引,Value 是表里面的所有字段。
type keyValue struct {
t uint8 //表示对应的类型
key an