mysql adaptive hash index

ahi可以让mysql在适当的负载和足够buffer pool的情况下让mysql看起来像是内存数据库,而不需牺牲事务功能和可靠性,可以通过innodb_adaptive_hash_index选项启动关闭这个功能。
基于搜索的观察者模式,mysql使用索引键的前缀创建hash索引。hash索引对那些经常访问的索引页创建。如果一个表的大部分都在内存中,hash index可以通过直接查找元素的方式加快查询速度,把索引值转换成一个排序的指针。innodb有监控索引搜索的机制,如果innodb注意到能通过构造hash 索引来加速查询,那么他会自动去创建。
在一些负载的情况下,hash index的查找效益明显高于监控索引查询和维护hash index结构的花费。
有时候,确保ahi访问的读写锁会在负载很重的情况下变成竞争来源。比如很多并发关联。like操作符,和%匹配符不能再ahi中获益,在这种情况下可以关闭ahi,hash索引总是在基于已存在的b-tree索引的结构上创建,hash index可以是部分的覆盖经常访问的页。可以使用 SHOW ENGINE INNODB STATUS 命令去监控,如果看到了很多线程在等待 RW-latch竞争,那么可以考虑关闭该功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值