MySql支持哪些索引类型

技术MySql支持哪些索引类型这篇文章主要讲解了“MySql支持哪些索引类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySql支持哪些索引类型”吧!一、什么是索引?

本文主要解释“MySql支持哪些索引类型”。本文的解释简单明了,易学易懂。请跟随边肖的思路,一起研究学习“MySql支持哪些索引类型”!

一、什么是索引?

官方解释:Index是一种帮助MySQL高效获取数据的数据结构。

通俗理解:Index是一个特殊的文件(InnoDB数据表上的索引是表空间不可分割的一部分),其中包含指向数据表中所有记录的引用指针。

二、索引可以做什么?

首先,指数不是万能的,索引可以加快数据检索操作,但它会减缓数据修改操作。每次修改数据记录时,都必须刷新索引。为了在一定程度上弥补这个缺陷,很多SQL命令都有一个DELAY_KEY_WRITE项。此选项的功能是在每个新记录和每个现有记录被此命令修改后,暂时停止MySQL立即刷新索引。索引的刷新将等到插入/修改所有记录。当一个数据表中需要插入很多新记录时,DELAY_KEY_WRITE选项的作用会非常明显。

三、为什么使用数据索引能提高效率?

数据索引存储有序。

在有序的情况下,没有必要遍历索引记录来通过索引查询一条数据。

极端情况下,数据索引的查询效率为二分法查询效率,接近log2(N)。

四、MySQL支持哪些索引类型?

我们这里提到的索引类型不是指“主键索引”和“外键索引”,而是指索引底部的数据结构。MySQL的索引数据结构支持以下两种:

b树索引。b树是一种平衡的多分支树。根节点到每个叶节点的高度差小于1,同级节点之间用指针链接,有序,如下图所示:MySql支持哪些索引类型

哈希索引。索引是使用某种哈希算法将键值转换成新的哈希值。搜索时,不需要像B树那样从根节点到叶节点逐级搜索。您只需要一次哈希算法,这是无序的,如下图所示:MySql支持哪些索引类型

不支持范围查询。

不支持索引完成排序。

不支持联邦索引最左边的前缀匹配规则。

哈希索引的优点:等价查询和哈希索引有绝对的优势(前提是没有大量的重复键值,如果有大量的重复键值,哈希索引的效率很低,因为存在所谓的哈希冲突问题。)

当指数不适用时:

五、什么情况下应不建或少建索引?

我们都知道什么时候应该使用索引,那么什么时候不应该使用索引呢?就像我们上面说的,指数不是万能的,所以指数肯定有一些不适用的场景。在以下场景中,我们应该尽量不构建或构建较少的索引:

记录太少了。

频繁插入、删除和修改的表。

对于数据重复且平均分布的表字段,如果一个表有10万行记录,而有一个字段A只有T和F两个值,且每个值的分布概率约为50%,那么索引这个表A字段一般不会提高数据库的查询速度。

经常与主字段一起查询但主字段的索引值较多的表字段。

六、什么是联合索引?

联合索引是两列或多列上的索引。对于联邦索引,MySQL支持从左到右使用索引中的字段。查询只能使用索引的一部分,但只能使用最左边的部分。比如索引是关键索引(A、B、C),可以支持A、A、B、A、B、C三种组合进行搜索,但不能支持B、C,当最左边的字段是常量引用时,索引非常有效。

通过索引中的附加列,您可以缩小搜索范围,但是使用包含两列的索引不同于使用两个单独的索引。

综合指数的结构类似于电话簿,其中姓名由姓氏和名字组成。电话簿首先按姓氏对同名同姓的人进行排序,然后按名字对同名同姓的人进行排序。如果知道姓氏,电话簿会很有用;如果你知道名字和姓氏,电话簿更有用,但是如果你只知道名字而不知道姓氏,电话簿就没用了。

00-1010b磁盘读写成本更低。B的内部节点没有指向关闭。

键字具体信息的指针,因此其内部结点相对B树更小。如果把所有同一内部结点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多。一次性读入内存中的需要查找的关键字也就越多。相对来说IO读写次数也就降低了。

  • B+-tree的查询效率更加稳定。由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当。

  • 感谢各位的阅读,以上就是“MySql支持哪些索引类型”的内容了,经过本文的学习后,相信大家对MySql支持哪些索引类型这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133545.html

    (0)

    相关推荐

    • 31种土豆家常做法,土豆有多少种做法

      技术31种土豆家常做法,土豆有多少种做法来给你说点家常的做法 131种土豆家常做法、最简单的做法就是酸辣土豆丝(土豆片)了。。。
      佐料有:干辣皮(切成段),葱(切成段),蒜(切成片),青椒(切成丝)
      首先把土豆切好,

      生活 2021年10月30日
    • oracle启用审计日志(添加审计策略oracle)

      技术oracle中添加审计策略的示例代码小编给大家分享一下oracle中添加审计策略的示例代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!s

      攻略 2021年12月17日
    • 涨粉工具app,抖音怎么刷粉丝好?

      技术涨粉工具app,抖音怎么刷粉丝好?涨粉工具app,抖音怎么刷粉丝好?玩抖音的朋友是越来越多,?但是玩的好的还是少数,大多数人玩抖音还只是一个业余爱好,如果想要有更高的人气更多的粉丝,还是有一定难度。有没有免费抖音刷粉

      测评 2021年11月11日
    • Cubieboard 3如何安装Jenkins

      技术Cubieboard 3如何安装Jenkins这篇文章主要为大家展示了“Cubieboard 3如何安装Jenkins”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Cub

      攻略 2021年11月26日
    • oracle sql调优

      技术oracle sql调优 oracle sql调优oracle的sql优化]基于oracle的sql优化
      【博主】高瑞林
      【博客地址】http://www.cnblogs.com/grl214一.编

      礼包 2021年12月3日
    • docx文件,Docx文件怎么打开呢

      技术docx文件,Docx文件怎么打开呢方法一docx文件、安装补丁法如果你的电脑中只安装了Word2003,而有一个文档却是2007或以上的那么要打开的办法你可以到微软件的网站下载补丁,或点击Word2007兼容补丁下

      生活 2021年10月31日