zoukankan      html  css  js  c++  java
  • 14.2.5.6 Adaptive Hash Indexes 自适应Hash Indexes

    14.2.5.6 Adaptive Hash Indexes 自适应Hash Indexes
    
    
    adaptive hash index(AHI) 让InnoDB 执行更加像在一个内存数据库里在,
    
    在不牺牲任何事务功能或者可靠性。
    
    
    这个功能是启动通过innodb_adaptive_hash_index option,或者关闭通过--skip-innodb_adaptive_hash_index  在服务器启动的
    
    时候。
    
    基于
    观察到的模式搜索,MySQL 建立一个Hash index 使用一个index key的前缀。
    
    
    
    key的前缀可以是任何长度,它可以是只有一些值在B-tree 出现在hash index,Hash indexes 是建立在
    
    那些索引的pages 经常被访问的。
    
    
    
    如果一个表填满整个在内存里,一个hash index 可以加速查询通过启用任何元素的直接查询,
    
    
    把index 值变成一种指针。InnoDB 有一个机制来监控索引搜索,如果InnoDB 注意到查询可以从创建一个hash index 收益,
    
    它会自动这么做。
    
    
    一些工作负载,hash index 查找加速远远超过额外的工作来监控index 查找和维护hash index 结构。
    
    
    有时候,read/write 锁 守护访问自适应索引可以变成一个竞争的源头 在负载比较大的情况下,
    
    比如 多个并发连接。查询像 LIKE 操作和% 通配符也不倾向于从AHI 收益。
    
    
    对于负载 自适应hash index是不需要的,关掉它降低不需要的性能负载。
    
    因为它是很难预测的,这个功能是否适合一个特定的系统。
    
    考虑到 运行基准 既启用和关闭 使用一个现实的工作负载。
    
    
    默认启用
    
    mysql> show variables like '%innodb_adaptive_hash_index%';
    +----------------------------+-------+
    | Variable_name              | Value |
    +----------------------------+-------+
    | innodb_adaptive_hash_index | ON    |
    +----------------------------+-------+
    1 row in set (0.00 sec)
    
    
    hash index 总是基于现在存在的B-tree 索引创建,
    InnoDB 可以创建一个hash index 在一个B-tree索引定义的任何长度的前缀。
    
    
    根据搜索的模式,InnoDB 观察B-tree 索引,一个hash index 可以是部分的,只覆盖索引经常访问的pages.

  • 相关阅读:
    《人件》读书笔记
    《人月神话》读书笔记
    使用表驱动编程设计打印万年历
    maven spring整合mybatis是使用junit测试报字节序列的错误
    idea中建立maven web项卡在Generating Project in Batch mode
    ideaIU-2016.2.5激活
    maven初步入门demo
    Scala基础篇-04 try表达式
    面试题12-旋转数组的最小值
    scala基础篇-03 if与for
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199888.html
Copyright © 2011-2022 走看看