Innodb关键特性之Adaptive Hash Index
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希桶位置,如果出现哈希冲突,就使用拉链法来解
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
破取app的数据库
南财有哪些数据库
关于互联网和科技的句子
浙大网络安全专业研究生
斗破苍穹手游服务器满怎么建号
番禺高效网络安全服务
数据库没有表存
二汽校企合作网络安全
sql取一个表里的数据库
vb登陆界面 数据库
软件开发项目wbs划分
公司服务器经常性重启
18国家网络安全
象棋软件开发商
数据库查询时如何不输入模式名
java登录数据库验证
老式服务器换硬盘教程
学校网络安全防护管理制度
网络安全 hume
数据为什么要存入数据库
网络技术三级题型真题
语音会议软件开发一般哪家好
服务器有哪些处理器种类
php 异步写数据库
数据库的物理层
北京茂泡网络技术有限公司
公共信息网络安全检查总局
日本网络安全工作
网络安全教案幼儿园中班
网络安全实战攻防培训