广告
返回顶部
首页 > 资讯 > 数据库 >Innodb关键特性之Adaptive Hash Index
  • 515
分享到

Innodb关键特性之Adaptive Hash Index

2024-04-02 19:04:59 515人浏览 独家记忆
摘要

      众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。 哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希

      众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。

哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希桶位置,如果出现哈希冲突,就使用拉链法来解决。更多内容可以参考  百度百科-哈希表

Innodb关键特性之Adaptive Hash Index

      从以上可以知道,哈希表查找最优情况下是查找一次.而InnoDB使用的是B+树,最优情况下的查找次数根据层数决定。因此为了提高查询效率,InnoDB便允许使用自适应哈希来提高性能。

可以通过参数 innodb_adaptive_hash_index 来决定是否开启。阿里云默认是关闭的。

Mysql>show variables like '%innodb_adaptive_hash_index%'
+----------------------------------+-----------------+
| Variable_name                    | Value           |
+----------------------------------+-----------------+
| innodb_adaptive_hash_index       | OFF             |
| innodb_adaptive_hash_index_parts | 8               |
+----------------------------------+-----------------+

         存储引擎会自动对个索引页上的查询进行监控,如果能够通过使用自适应哈希索引来提高查询效率,其便会自动创建自适应哈希索引,不需要开发人员或运维人员进行任何设置操作。

      自适应哈希索引是对innodb的缓冲池的B+树页进行创建,不是对整张表创建,因此速度很快。

      可以通过查看innodb的status来查看自适应哈希索引的使用情况。

INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 6236, seg size 6238, 50367801 merges
merged operations:
 insert 78512159, delete mark 0, delete 0
discarded operations:
 insert 0, delete mark 0, delete 0
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
Hash table size 13148407, node heap has 0 buffer(s)
0.00 hash searches/s, 67793.48 non-hash searches/s

可以看到自适应哈希索引的大小,以及使用情况。

注意: 从哈希表的特性来看,自适应哈希索引只能用于等值查询,范围或者大小是不允许的。

等值查询: select * from xx where name = "xxx";

您可能感兴趣的文档:

--结束END--

本文标题: Innodb关键特性之Adaptive Hash Index

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

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

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

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

下载Word文档
猜你喜欢
  • Innodb关键特性之Adaptive Hash Index
          众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。 哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希...
    99+
    2022-10-18
  • InnoDB关键特性之自适应hash索引
    一、索引的资源消耗分析 1、索引三大特点   1、小:只在一个到多个列建立索引   2、有序:可以快速定位终点   3、有棵树:可以定位起点,树高一般小于等于3 ...
    99+
    2022-10-18
  • Innodb关键特性之什么是doublewrite
    本篇内容介绍了“Innodb关键特性之什么是doublewrite”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-18
  • Innodb关键特性之什么是Insert Buffer
    本篇内容介绍了“Innodb关键特性之什么是Insert Buffer”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2022-10-18
  • Innodb关键特性之什么是异步IO
    这篇文章主要介绍“Innodb关键特性之什么是异步IO”,在日常操作中,相信很多人在Innodb关键特性之什么是异步IO问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Inno...
    99+
    2022-10-18
  • MySQL Innodb关键特性之插入缓冲(insert buffer)
    什么是insert buffer?    插入缓冲,也称之为insert buffer,它是innodb存储引擎的关键特性之一,我们经常会理解插入缓冲时缓冲池的一个部分,这样的理解是片面的,ins...
    99+
    2022-05-27
    MySQL Innodb Innodb 插入缓冲 Innodb insert buffer
  • Innodb关键特性之怎么刷新邻接页
    本篇内容介绍了“Innodb关键特性之怎么刷新邻接页”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、工作...
    99+
    2022-10-18
  • Innodb关键特性之怎么实现启动、关闭和恢复
    这篇文章主要讲解了“Innodb关键特性之怎么实现启动、关闭和恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Innodb关键特性之怎么实现启动、关闭和恢...
    99+
    2022-10-18
  • PHP关键特性之命名空间的示例分析
    这篇文章主要介绍PHP关键特性之命名空间的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!你知道命名空间主要是为了解决代码中类和函数可能存在冲突的问题的吗?而这个特性其他语言一早就有,PHP则是姗姗来迟,它的出...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作