Innodb关键特性之Adaptive Hash Index
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希桶位置,如果出现哈希冲突,就使用拉链法来解
千家信息网最后更新 2025年11月09日Innodb关键特性之Adaptive Hash Index
众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。
哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希桶位置,如果出现哈希冲突,就使用拉链法来解决。更多内容可以参考 百度百科-哈希表

从以上可以知道,哈希表查找最优情况下是查找一次.而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 mergesmerged operations: insert 78512159, delete mark 0, delete 0discarded operations: insert 0, delete mark 0, delete 0Hash 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";
哈希
索引
查询
情况
人员
可以通过
大小
效率
特性
众所周知
位置
内容
函数
参数
引擎
形式
很快
性能
拉链
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
达梦数据库查询数据总量sql
如何建立企近数据库
金蝶k3hr服务器迁移
mysql数据库与表
铁鱼网络技术
完善业绩数据库
工控网络安全建设项目
培训数据库开发工程师
辽宁通信软件开发服务价格优惠
黑客攻防与网络安全速查电子书
农安智能网络技术推荐咨询
网络安全半包
在ftp服务器上预览图片
银行软件开发岗位西安招聘
用什么软件开发大数据
物业管理软件开发论文
知识数据库系统
北京达因军惠网络技术有限
我的世界服务器招聘网
如何用应用软件开发
ieee标准四节点数据库
如何删除ftp服务器文件夹
网络安全知识竞赛300道题
以下属于网络安全法
数据库免费
桌面随机点名软件开发
工控网络安全建设项目
数据库设计 er
重庆金童盛世互联网科技有限公司
apache服务器是