关于MySql索引B+树的一些理解总结

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