B树
特点:
- B树是有的序
- 左边的节点比根节点小,右边的节点比根节点大,子树也是满足这个规则的
- B数的一个节点有多个元素,元素之间也是有顺序的。
B+树
特点:
1.整体有序
2. 一个节点有多个元素
3. 节点中多个元素也有序
4. 叶子节点中有指针
5. 非叶子节点中的元素冗余了一份在叶子节点中
mysql中的B+树
页是InnoDB存储引擎磁盘管理的最小单位,每个页默认16KB,结构分为
每部分的意义
InnoDB是在插入的的时候按主键排的续,建议用自增的主键id这样插入的性能会高一些,查询的时候比如查询 select * from table from where id = 300000 时候就会用到页目录来优化查询。
如何利用页目录来优化查询:
1.首先对用户数据进行分组,每一组就对应一个目录项.
2.每个目录项都有对应每组第一组元素的指针,然后每个目录项都存有这一组中元素最小的主键值
当一页的数据存储满16kb时候,mysql会新开一页页与页之间有指针如图
当我们查询select * from table where id = 6时候(mysql并不知道数据在第二页只能沿着next指针从第一页开始一页一页的查找)mysql会新开一页然后把每一页当成一个分组,生成一个指向每一页的指针,并把每一页的最小值存储起来,这样查找起来效率就高了,这也就是innoDB中的B+树