zoukankan      html  css  js  c++  java
  • 14.4.3 Adaptive Hash Index 自适应hash index

    14.4.3 Adaptive Hash Index  自适应hash index
    
    自适应hash index(AHI) 让InnoDB 执行更像内存数据库在系统使用合适的负载组合和足够的内存用于Buffer pool,
    
    基于观察到的搜索模式, MySQL 创建一个hash index 使用一个index key 前缀。
    
    索引的前缀可以任何长度, 可能只有一些值在B树索引里是出现在hash index.
    
    
    Hash indexes 是基于需求对于那些index 的索引页经常被访问的
    
    
    如果一个表整个在主内存里, 一个hash index 可以加速查询通过直接查找任何元素,讲索引值变成一个指针。
    
    InnoDB 有一个机制监控索引搜索,如果InnoDB 注意到查询可以从创建的hash index收益,它会自动处理
    
    
    在一些负载下, 从hash index 查询加速极大的超过了额外的工作用于监控索引查询和维护hash index结构。
    
    
    有时候, read/write lock 保护访问到自适应的hash index 可以变成连接的来源在高负载下
    
    比如 多核并发关联,查询像%通配也不会从AHI(自适应索引)收益。
    
    mysql> show variables like '%hash%';
    +-------------------------------+-------+
    | Variable_name                 | Value |
    +-------------------------------+-------+
    | innodb_adaptive_hash_index    | ON    |
    
    对于负载 自适应索引是不需要的, 关闭它降低不需要的性能负载。
    
    因为它是很难预测的 是否这个功能是合适的对于特定的系统,
    
    
    考虑运行基准,使用一个现实的负载。
    
    
    hash index总是基于一个存在的B-tree Index 在表上,InnoDB 可以创建一个hash index 在一个key的任何长度的前缀
    
    定义用于B-tree 取决于搜索的模式 InnoDB观察B树索引。
    
    一个Hash index可以是部分的, 覆盖那些经常被访问的页面
    

  • 相关阅读:
    bzoj2018 [Usaco2009 Nov]农场技艺大赛
    2014.9.27模拟赛【栅栏迷宫】
    cf471B MUH and Important Things
    cf471A MUH and Sticks
    bzoj3016 [Usaco2012 Nov]Clumsy Cows
    bzoj3404 [Usaco2009 Open]Cow Digit Game又见数字游戏
    bzoj1633 [Usaco2007 Feb]The Cow Lexicon 牛的词典
    bzoj3299 [USACO2011 Open]Corn Maze玉米迷宫
    codevs1040 统计单词个数
    codevs1039 数的划分
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350145.html
Copyright © 2011-2022 走看看