关于MySql索引B+树的一些理解总结
- 笔者最近换工作,被面试官问道很多关于数据库mysql索引的问题所以在这里总结一下
- 关于B+tree你了解多少;
- 1.底层结构,B+tree本质上一种平衡二叉树,是从2叉树的基础上结合B树演化来的;具体结构如下图所示:
- 数据库索引根节点数据是存放在内存中的,不需要经过磁盘io的过程;
- mysql默认会创建聚簇索引,及主键索引,聚簇索引叶子节点会存放主键和数据信息;非聚簇索引不存在数据信息,只存放非主键key和主键key;所以通过非主键查询,需要先通过非聚簇索引查找到主键,然后在通过聚簇索引查找到该数据;
- B树节点中存在key值和data;B+树只在叶子节点中存在;
- 以上情景为mysql的innoDB引擎,支持事务;