iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 索引结构 hash 有序数组 - G
  • 788
分享到

MySQL 索引结构 hash 有序数组 - G

MySQL索引结构hash有序数组-G 2015-05-09 02:05:20 788人浏览 绘本
摘要

Mysql 索引结构 hash 有序数组 除了最常见的树形索引结构,Hash索引也有它的独到之处。   Hash算法 Hash本身是一种函数,又被称为散列函数。 它的思路很简单:将key放在数组里,用一个hash算法把不同

MySQL 索引结构 hash 有序数组 - G

Mysql 索引结构 hash 有序数组

除了最常见的树形索引结构,Hash索引也有它的独到之处。

 

Hash算法

  • Hash本身是一种函数,又被称为散列函数。

  • 它的思路很简单:将key放在数组里,用一个hash算法把不同的key转换成一个确定的value,然后放在这个数组的指定位置

    相同的输入永远可以得到相同的输出

  • 具体的算法有MD5、SHA1、SHA2、SHA3

  • Hash冲突:不同的key得到了相同的value

    当出现Hash冲突,可以在冲突发生的位置跟一个链表

 

Hash索引

索引使用的数据结构的特性会让索引也具有不同的特性:

  • Hash索引只适用于等值查询的场景,区间查询速度很慢

    因为经过hash函数处理后,即便是原本有序的输入,最后存放的位置也会变为无序的。

  • 检索速度很快

    索引检索一次到位,而不需要想B+树那样从根节点访问到叶子节点。不过在有大量重复值得情况下,hash索引的效率极低,因为要频发地处理Hash冲突。

  • 无法完成排序,模糊查询

    因为它们本质上是范围查询

  • 不支持多列联合索引的最左匹配原则

    对于Hash索引的联合索引,是将联合索引字段值相捆绑然后计算Hash值的,无法利用对单一字段的Hash值

Hash索引的用途:

  • Hash索引更多地使用在键值型的数据库中,比如Redis

  • mysql的Memory存储引擎支持Hash存储

    如果我们需要用到查询的临时表时,就可以选择 Memory 存储引擎,把某个字段设置为 Hash 索引,比如字符串类型的字段,进行 Hash 计算之后长度可以缩短到几个字节。当字段的重复度低,而且经常需要进行等值查询的时候,采用 Hash 索引是个不错的选择

  • InnoDB自适应Hash索引

    当某个索引值使用非常频繁的时候,它会在 B+ 树索引的基础上再创建一个 Hash 索引,这样让 B+ 树也具备了 Hash 索引的优点。

 

有序数组

如果我们使用有序数据作为索引结构的话,那么

  • 等值查询和范围查询的性能都十分优秀
  • 但是插入和删除的成本太大

因此有序数组的结构只适合静态存储引擎,如果我们要存储以某种有序编号为序的不轻易增删的历史数据,我们可以使用有序数组作为索引结构。

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 索引结构 hash 有序数组 - G

本文链接: https://www.lsjlt.com/news/7004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 索引结构 hash 有序数组 - G
    MySQL 索引结构 hash 有序数组 除了最常见的树形索引结构,Hash索引也有它的独到之处。   Hash算法 Hash本身是一种函数,又被称为散列函数。 它的思路很简单:将key放在数组里,用一个hash算法把不同...
    99+
    2015-05-09
    MySQL 索引结构 hash 有序数组 - G
  • MySQL 树形索引结构 B树 B+树 - G
    MySQL 树形索引结构 B树 B+树   如何评估适合索引的数据结构 索引的本质是一种数据结构 内存只是临时存储,容量有限且容易丢失数据。因此我们需要将数据放在硬盘上。 在硬盘上进行查询时也就产生了硬盘的I/O操作,而硬盘的I...
    99+
    2021-08-06
    MySQL 树形索引结构 B树 B+树 - G
  • MySQL索引的数据结构
    文章目录 一、索引的简介1、索引的概念2、索引的优点3、索引的缺点 二、索引的代价1、空间上的代价2、时间上的代价 三、InnoDB中索引的推演1、设计索引2、常见索引概念2.1、聚簇...
    99+
    2023-08-31
    MySQL 索引
  • MySQL索引数据结构是什么
    MySQL索引数据结构是B-Tree。B-Tree是一种自平衡的搜索树,可以高效地支持插入、删除和查找操作。在MySQL中,每个索引...
    99+
    2023-10-27
    MySQL
  • 关于Mysql索引的数据结构
    索引的数据结构 1、为什么使用索引 概念: 索引是存储索引用于快速找到数据记录的一种数据结构,就好比一本书的目录部分,通过目录中对应的文章的页码,便可以快速定位到需要的文章,Mysql 中也是一样的道理,进行数据查找时首先查看查询条件是否...
    99+
    2017-04-22
    关于Mysql索引的数据结构
  • 什么是mysql索引的数据结构
    本篇文章给大家主要讲的是关于什么是mysql索引的数据结构的内容,感兴趣的话就一起来看看这篇文章吧,相信看完什么是mysql索引的数据结构对大家多少有点参考价值吧。一、简介mysql索引的数据结构是树,常用...
    99+
    2022-10-18
  • Mysql 数据库结构及索引类型
    目录前言数据库索引的数据结构聚集索引辅助索引索引管理联合索引覆盖索引总结前言 数据库索引是mysql数据库中重要的组成部分,是数据库查询数据速度提升的关键,本文将介绍数据库索引的一些...
    99+
    2022-11-13
  • 深入解析MySQL索引数据结构
    目录概述索引数据结构 二叉树 红黑树 B-Tree B+Tree Hash 索引 InnoDB 索引实现(聚集) 索引文件和数据文件是分离的(非聚集) 聚集索引和非聚集索引 联合/复...
    99+
    2022-11-12
  • MySQL索引底层数据结构详情
    目录一、索引类型 1.B+树 2.MyISAM和InnoDB的B+树索引实现方式的区别(聚簇索引和非聚簇索引)?3.非聚簇索引 4.聚簇索引的优缺点5.哈希索引 6.自适应哈希索引 ...
    99+
    2022-11-12
  • MySQL索引的数据结构-B+树介绍
    1.聚集索引和辅助索引 在数据库中,B+树的高度一般都在24层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。因为当前一般的机械硬盘每秒至少可以做100次IO,24次的IO意味着查询时间只需要0.02~0.0...
    99+
    2017-02-08
    MySQL索引的数据结构-B+树介绍
  • MySQL索引底层数据结构是什么
    本篇文章为大家展示了MySQL索引底层数据结构是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  案例:  CREATE TABLE `employees` (...
    99+
    2022-10-18
  • InnoDB表的索引有哪些特性,索引组织结构是怎样的?
      1、InnoDB聚集索引特点  我们知道,InnoDB引擎的聚集索引组织表,必然会有一个聚集索引。  行数据(row data)存储在聚集索引的叶子节点(除了发生overflow的列,参见 ,后面简称 ...
    99+
    2022-10-18
  • MySQL索引数据结构入门详细教程
    目录引言1. 什么是索引2. 索引的数据结构2.1 B+Tree 和 B-Tree2.2 树高问题2.3 什么样的搜索可以用到索引?2.4 使用限制2.5 自适应哈希索引3. 小结引言 之前松哥写过一个 mysql 系列...
    99+
    2023-05-15
    MySQL索引数据结构 MySQL入门教程
  • mysql索引数据结构一般如何使用
    下文主要给大家带来mysql索引数据结构一般如何使用,希望这些内容能够带给大家实际用处,这也是我编辑mysql索引数据结构一般如何使用这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。  &...
    99+
    2022-10-18
  • MySQL中InnoDB索引数据结构(B+树)详解
    mysql的innodb的索引的B+树逐步讲解 B树B+树B树和B+树的不同点聚集索引 VS 非聚集索引总结(面试题)1.为什么不使用二叉查找树?2.为什么不使用平衡二叉树?3.为什么不使用B树?4.为什么MySQL选择B+树做索引...
    99+
    2023-08-17
    b树 数据结构 mysql 数据库
  • MySQL索引底层数据结构怎么理解
    这篇文章主要介绍“MySQL索引底层数据结构怎么理解”,在日常操作中,相信很多人在MySQL索引底层数据结构怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL索引底层数据结构怎么理解”的疑惑有所...
    99+
    2023-06-25
  • MySQL B-tree与B+tree索引数据结构剖析
    目录一、产生的背景1.1 进化要求二、B-tree2.1 B-tree特性三、B+tree3.1 B+tree特性四、结论一、产生的背景 二叉查找树的查找时间复杂度是O(logN),整体的查询效率已经足够高了,那么为什么...
    99+
    2022-08-22
    MySQL B-tree MySQL B+tree MySQL索引数据结构剖析
  • MySQL高级篇之索引的数据结构详解
    目录1.为什么使用索引?2.索引的优缺点3.InnoDB中的索引3.1 设计索引3.2 常见索引概念3.2.1 聚簇索引3.2.2 非聚簇索引3.2.3 联合索引4.InnoDB与M...
    99+
    2022-11-13
  • MySQL用B+树作为索引结构有什么好处
    前言 在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL为什么...
    99+
    2022-05-18
    MySQL 索引结构 MySQL b+树
  • mysql怎么查看表结构及已有索引信息
    本篇内容主要讲解“mysql怎么查看表结构及已有索引信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql怎么查看表结构及已有索引信息”吧!查看表结构及已...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作