我是靠谱客的博主 开心小笼包,最近开发中收集的这篇文章主要介绍MySQL 常用索引结构分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(1)哈希索引:只有Memory引擎支持,使用场景相对简单。它是使用哈希算法,将键值换成新的哈希值,检索时不需要B+那样从根节点逐级遍历,只需要哈希算法就能找到相应的位置。

      优势:哈希索引适用于等值查询(如=、<、>、in),效率很高,前提是没有大量重复键值,否则会出现哈希冲突。

      劣势:哈希索引不支持范围查询;不适用根据索引列进行排序;不支持部分索引列匹配查询。

(2)B+树索引:用于InnoDB引擎,B+树是多路搜索树(即m叉树),它有两个重要的特性:

      特性一:所以的数据都存储在叶子节点(Leaf Page),非叶子节点(Index Page)不存储真正的数据,所有的数据节点都是按照键值的大小顺序存放在同一层叶子节点上;

     特性二:所有的叶子节点都是通过指针连接的。

     补充:B+树的每个节点大小都是一个页的整数倍,之所以这样,是因为计算机磁盘的存储原理。页是计算机管理存储器的逻辑块,大部分页的大小是4k,主存和磁盘是以页为单位进行交互的,然而为了减少磁盘I/O,磁盘往往不是按需读取的,而是预读,即使我们只需要一个字节,磁盘也会将数据起始位置之后的一页或者几页数据放入内存中;另外,在向节点中新增数据的时候,叶子节点以及非叶子节点如果已满,就会出现拆分页操作,那么就需要I/O操作,这是B+树也提供了类似于平衡二叉树的旋转功能,可以有效减少I/O操作。

最后

以上就是开心小笼包为你收集整理的MySQL 常用索引结构分析的全部内容,希望文章能够帮你解决MySQL 常用索引结构分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部