iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >InnoDB关键特性之自适应hash索引
  • 248
分享到

InnoDB关键特性之自适应hash索引

2024-04-02 19:04:59 248人浏览 八月长安
摘要

一、索引的资源消耗分析 1、索引三大特点   1、小:只在一个到多个列建立索引   2、有序:可以快速定位终点   3、有棵树:可以定位起点,树高一般小于等于3

一、索引的资源消耗分析


1、索引三大特点


  1、小:只在一个到多个列建立索引


  2、有序:可以快速定位终点


  3、有棵树:可以定位起点,树高一般小于等于3


2、索引的资源消耗点


  1、树的高度,顺序访问索引的数据页,索引就是在列上建立的,数据量非常小,在内存中;


  2、数据之间跳着访问


    1、索引往表上跳,可能需要访问表的数据页很多;


    2、通过索引访问表,主键列和索引的有序度出现严重的不一致时,可能就会产生大量物理读;


  资源消耗最厉害:通过索引访问多行,需要从表中取多行数据,如果无序的话,来回跳着找,跳着访问,物理读会很严重。


二、自适应hash索引原理


1、原理过程

InnoDB关键特性之自适应hash索引


Innodb存储引擎会监控对表上二级索引的查找,如果发现某二级索引被频繁访问,二级索引成为热数据,建立哈希索引可以带来速度的提升,则:


  1)、自适应hash索引功能被打开


Mysql> show variables like '%ap%hash_index';

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| innodb_adaptive_hash_index | ON    |

+----------------------------+-------+

1 row in set (0.01 sec)

  2)、经常访问的二级索引数据会自动被生成到hash索引里面去(最近连续被访问三次的数据),自适应哈希索引通过缓冲池的B+树构造而来,因此建立的速度很快。


2、特点


  1、无序,没有树高


  2、降低对二级索引树的频繁访问资源


    索引树高<=4,访问索引:访问树、根节点、叶子节点


  3、自适应


3、缺陷


  1、hash自适应索引会占用innodb buffer pool;


  2、自适应hash索引只适合搜索等值的查询,如select * from table where index_col='xxx',而对于其他查找类型,如范围查找,是不能使用的;


  3、极端情况下,自适应hash索引才有比较大的意义,可以降低逻辑读。


三、监控与关闭


1、状态监控


mysql> show engine innodb status\G

……

Hash table size 34673, node heap has 0 buffer(s)

0.00 hash searches/s, 0.00 non-hash searches/s

  1、34673:字节为单位,占用内存空间总量


  2、通过hash searches、non-hash searches计算自适应hash索引带来的收益以及付出,确定是否开启自适应hash索引

2、限制


  1、只能用于等值比较,例如=, <=>,in


  2、无法用于排序


  3、有冲突可能


  4、Mysql自动管理,人为无法干预。


3、自适应哈希索引的控制


  由于innodb不支持hash索引,但是在某些情况下hash索引的效率很高,于是出现了adaptive hash index功能,但是通过上面的状态监控,可以计算其收益以及付出,控制该功能开启与否。


  默认开启,建议关掉,意义不大。可以通过 set global innodb_adaptive_hash_index=off/on 关闭和打开该功能。

您可能感兴趣的文档:

--结束END--

本文标题: InnoDB关键特性之自适应hash索引

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

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

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

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

下载Word文档
猜你喜欢
  • Innodb关键特性之Adaptive Hash Index
          众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。 哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希...
    99+
    2024-04-02
  • Innodb关键特性之什么是doublewrite
    本篇内容介绍了“Innodb关键特性之什么是doublewrite”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • Innodb关键特性之什么是Insert Buffer
    本篇内容介绍了“Innodb关键特性之什么是Insert Buffer”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • Innodb关键特性之什么是异步IO
    这篇文章主要介绍“Innodb关键特性之什么是异步IO”,在日常操作中,相信很多人在Innodb关键特性之什么是异步IO问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Inno...
    99+
    2024-04-02
  • Innodb关键特性之怎么刷新邻接页
    本篇内容介绍了“Innodb关键特性之怎么刷新邻接页”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、工作...
    99+
    2024-04-02
  • Innodb关键特性之怎么实现启动、关闭和恢复
    这篇文章主要讲解了“Innodb关键特性之怎么实现启动、关闭和恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Innodb关键特性之怎么实现启动、关闭和恢...
    99+
    2024-04-02
  • MySQL自适应哈希索引的特点和缺陷有哪些
    这篇文章主要讲解了“MySQL自适应哈希索引的特点和缺陷有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL自适应哈希索引的特点和缺陷有哪些”吧!...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作