关于索引:Mysql的Innodb引擎索引总结

4次阅读

共计 766 个字符,预计需要花费 2 分钟才能阅读完成。

索引的目标是什么?

答:数据库增加索引的目标是为了放慢查问速度。

索引的的数据结构是什么?

答:(这里的 B 是 balance)B+ 树来存储索引,B+ 树相似于二叉树。

B+ 树是怎么查找数据的?

答:B+ 树索引并不能找到一个给定值的具体行。B+ 树索引能找到的只是被查问数据行所在的页。而后数据库通过页读入到内存,再在内存中进行查找,最初失去要查找的数据。

什么是 B + 树

答:B+ 树是为磁盘或其余直接存取辅助设备设计的一种均衡查找树。在 B + 树中,所以记录点都依照值的大小程序寄存在同一层的叶子节点上,由各叶子节点指针进行链接。

汇集索引的定义(每张表只能有一个汇集索引)

答:汇集索引就是依照每张表的主键结构一颗 B + 树,同时叶子节点中寄存的即为整张表的行记录,也将汇集索引的叶子节点称为数据页。汇集索引的这个个性决定了索引组织表中 数据也是索引 的一部分(因为存储是依照 KEY-VALUE 这样存储)。每个数据页都通过双向链表进行链接。

聚簇索引和非聚簇索引

答:将数据存储与索引放到了一块,找到索引也就找到了数据。将数据存储于索引离开构造,索引构造的叶子节点指向了数据的对应行,myisam 通过 key_buffer 把索引先缓存到内存中,当须要拜访数据时(通过索引拜访数据),在内存中间接搜寻索引,而后通过索引找到磁盘相应数据,这也就是为什么索引不在 key buffer 命中时,速度慢的起因

辅助索引(非汇集索引)

答:辅助索引,叶子节点并不蕴含行记录的全副数据

联结索引

答:就是对表中的多个字段增加索引。联结索引也是一颗 B + 树,只不过联结索引的叶子节点存储的字段是大于等于 2。联结索引的第二个益处是曾经对第二个键值进行了排序解决。

笼罩索引

答:辅助索引中就能够失去查问的记录,而不须要查问汇集索引的记录(意思就是不必回表了)。笼罩索引是联结索引的最优状况。

最左前缀准则
索引下推
正文完
 0