伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 互联网资讯 » 文章详细 订阅RssFeed

什么环境?MySQL居然有中“8种”索引?

来源:本站原创 浏览:121次 时间:2021-08-06

  关于MySQL索引相关的数据,一直是一个让人头疼的问题,尤其是对于初学者来说。笔者曾在很长一段时间内深陷此中,无法分清“覆盖索引,辅助索引,独一索引,Hash索引,B-Tree索引……”究竟是些什么东西,导致在口试过程中进入对照尴尬的局势。

  很多人可能会埋怨”口试造火箭,工作拧螺丝,很多知识都是为了口试学的,工作中根本用不到!“。庆幸的是,MySQL中索引不仅是口试必考知识,照样工作中用到最为频繁的必备妙技,在笔者看来,索引是MySQL中性价比最高的一部门数据。

  由于MySQL中支持多种存储引擎,在分歧的存储引擎中实现略微有所差距,索引下文中如果没有特殊声明,默认指的都是InnoDB存储引擎。

  一、底层内容布局

  首先,索引是高效获取内容的内容布局。就像书中的目录一样,我们能够通过它快速定位到内容地点的位置,从而进步内容查询的效率。

  在MySQL中有许多关于索引的名词和概念,对于初学者来说很容易被利诱。为了方便懂得,我创建了一张表,从具体的案例中尝试说清楚这些概念究竟是什么。

  Hash索引

  正如上文中说到,索引是进步查询效率的内容布局,而可以进步查询效率的内容布局有很多,如二叉搜刮树,红黑树,跳表,哈希表(散列表)等,而MySQL中用到了B+Tree和散列表(Hash表)作为索引的底层内容布局。

  必要注意的是,MySQL并没有显式支持Hash索引,而是作为内部的一种优化,对于热点的内容会自动天生Hash索引,也叫自适应Hash索引。

  Hash索引在等值查询中,能够O(1)时间复杂度定位到内容,效率非常高,然则不支持范围查询。在许多编程语言以及内容库中都会用到这个内容布局,如Redis支持的Hash内容布局。具体布局如下:

  

  B+Tree索引

  提到B+Tree首先不得不提B-Tree,B-Tree(多路搜刮树,并不是二叉的)是一种常见的内容布局。使用B-tree布局能够显著削减定位记录时所履历的中间过程,从而加速存取速率。

  

  B+ 树是基于B-Tree升级后的一种树内容布局,平日用于内容库和操纵体系的文件体系中。B+ 树的特点是可以连结内容不乱有序,其插入与修改拥有较不乱的对数时间复杂度。B+ 树元素自底向上插入,这与二叉树恰好相反。

  MySQL索引的实现也是基于这种高效的内容布局。具体内容布局如下:

  

  笔者首先要声明一下,不要将B树,B-Tree以及B+Tree弄搅浑。首先,B-Tree便是B树,中间的“-”是一个中划线,而不是减号,并不存在"B减树"这种内容布局。其次,便是B+Tree和B-Tree实现索引时有两个区别,具体可见下图

  ①B+Tree只在叶子节点存储内容,而B-Tree的内容存储在各个节点中

  

本文地址:http://www.wbwb.net/bianchengyuyan/224242.html 转载请注明出处!

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net