学习笔记-01Mysql索引-Hash索引

索引的定义

索引是一种为了加速对数据库表中数据行的检索而创建的分散存储的数据结构。1.索引的本质是一种数据结构2.索引是分散存储的磁盘及索引

1.1 索引的工作机制

Mysql 查询 IO读取按 页读取。 MySQL默认指定每页读取数据16KB 数据。

1.2 Hash 索引

Hash索引的原理,基于Hash表实现,通过对索引列的值做Hash计算得到一个HashCode,通过类似取模运算得到一个下标。然后将数据的磁盘序列存储在指定下标的位置(类似Java中HashMap的原理,出现Hash冲突转换成链表)。根据索引检索数据时,将索引值通过同样的Hash运算定位到数组位置得到磁盘序列,拿到磁盘序列后找到指定的检索数据。

1.优点:    等值匹配效率很高(因为基于散列算法,每个key对应一个hashcode)。

2.缺点:    由于是对索引列的值做hash计算后取模得到下标。无法对索引做大小判断。因此不支持范围查询。和排序功能。

3.说明:    MySQL官方定义,在Innodb,MyISAM 引擎中不支持用户级别的Hash索引。只有自适应Hash索引。    在Memery 引擎中是运行用户自定义Hash索引。


图一 Hash索引示例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 索引,一种强大的存在;不管是什么行业,数据都是根基,终将落盘固化,提供各方检索查询,之前整理了一篇[《深入浅...
    码农戏码阅读 1,571评论 1 43
  • 背景 使用mysql最多的就是查询,我们迫切的希望mysql能查询的更快一些,我们经常用到的查询有: 按照id查询...
    全能程序员阅读 219评论 0 0
  • mysql索引概述 什么是索引 索引是一种高效获取数据的数据结构,提高数据查询效率 索引分类 从存储结构上来划分:...
    潇湘夜雨_pwj阅读 1,863评论 1 5
  • 索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B+索引:传统...
    一凡呀阅读 3,034评论 0 8
  • (一) 为什么那么多姑娘们过了三十岁还不愿意结婚? 她们害怕一段婚姻的失败吗? 她们真得不需要有人疼爱吗? 怎么会...
    钟绯尔阅读 3,134评论 0 0