MySQL 自适应哈希索引

数据库这个变量查看是否打开自适应哈希索引
innodb_adaptive_hash_index

文档:自适应哈希索引

自适应哈希索引功能可以InnoDB 在不牺牲事务功能或可靠性的情况下,在工作负载和缓冲池有足够内存的适当组合的系统上,更像是内存数据库自适应哈希索引功能由innodb_adaptive_hash_index 变量启用 ,或在服务器启动时由禁用 --skip-innodb-adaptive-hash-index

根据观察到的搜索模式,使用索引关键字的前缀构建哈希索引。该前缀可以是任何长度,并且可能是哈希树索引中仅B树中的某些值出现。哈希索引是根据对经常访问的索引页面的需求而建立的。

如果表几乎完全适合主内存,则散列索引可以通过启用直接查找任何元素的方式来加速查询,从而将索引值转换为某种指针。InnoDB 具有监视索引搜索的机制。如果 InnoDB发现查询可以从构建哈希索引中受益,它会自动这样做。

在某些工作负载下,哈希索引查找的速度大大超过了监视索引查找和维护哈希索引结构的额外工作。在繁重的工作负载(例如多个并发连接)下,访问自适应哈希索引有时可能会成为争用的源。与 LIKE运算符和% 通配符也往往不会受益。**对于无法从自适应哈希索引功能中受益的工作负载,将其关闭可减少不必要的性能开销。**由于很难预先预测自适应哈希索引功能是否适合特定的系统和工作负载,因此请考虑启用和禁用该功能的基准测试。与早期版本相比,MySQL 5.6中的体系结构更改使其更适合禁用自适应哈希索引功能。

您可以在输出SEMAPHORES部分中 监视自适应哈希索引的使用和争用 SHOW ENGINE INNODB STATUS。如果在中创建的RW锁上有许多线程正在等待btr0sea.c,则禁用自适应哈希索引功能可能很有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值