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)

    相关推荐

    • Oracle锁的面试题有哪些

      技术Oracle锁的面试题有哪些本篇内容介绍了“Oracle锁的面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

      攻略 2021年11月5日
    • SpringBoot中常用的注解有哪些

      技术SpringBoot中常用的注解有哪些这篇文章主要介绍了SpringBoot中常用的注解有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、@Sp

      攻略 2021年12月11日
    • 写朋友深厚友情的诗句,表达朋友间深厚情谊的诗句有哪些

      技术写朋友深厚友情的诗句,表达朋友间深厚情谊的诗句有哪些8句诗词话友情,愿我们友谊天长地久!一写朋友深厚友情的诗句、劝君更尽一杯酒,西出阳关无故人。出自唐·王维《渭城曲/送元二使安西》。请你再干了这杯酒以壮行色,出了阳关

      生活 2021年10月28日
    • oracle rac环境安装目录权限被修改乱了怎么办

      技术oracle rac环境安装目录权限被修改乱了怎么办这篇文章将为大家详细讲解有关oracle rac环境安装目录权限被修改乱了怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在

      攻略 2021年12月4日
    • Sql Server参数化查询之where in和like实现详解

      技术Sql Server参数化查询之where in和like实现详解 Sql Server参数化查询之where in和like实现详解GPS平台、网站建设、软件开发、系统运维,找森大网络科技!htt

      礼包 2021年11月15日
    • 三明治的英语,我想要一个三明治用英语怎么说

      技术三明治的英语,我想要一个三明治用英语怎么说我想要一个三明治三明治的英语。I want a sandwich.Id like (to have) a sandwich = I would like (to have)

      生活 2021年10月25日