Innodb 自适应哈希索引的优缺点

名称 自适应哈希索引
适合使用场景 适合使用 = 和 IN 操作符的等值查询
不合适场景 不适合使用 like 和 % 的范围查询和高并发的joins
优点 提高了Innodb的内存使用率和一些情况下二级索引的查询效率
缺点 占用Innodb的内存缓存,使用了 lacth 锁保护内存中的hash结构
mysql 术语列表中对自适应哈希索引的解释
  • AHI 自适应哈希索引

  • InnoDB 通过在内存中构造哈希索引,对使用 =IN 运算符 加速查找的表进行优化。MySQL监视表的索引搜索,如果查询可以从哈希索引中受益,它会自动为经常访问的索引页构建一个。从某种意义上说,MySQL在运行时配置自适应哈希索引以利用充足主内存,更接近主内存数据库的体系结构。InnoDB 此功能由 innodb_adaptive_hash_index 配置选项。由于此功能有利于一些工作负载而非所有的工作负载,并且会占用缓冲池中的内存,因此通常您应该使用此功能进行基准测试,无论是启用还是禁用。

  • 哈希索引始终基于现有的 InnoDB 二级索引构建 ,该索引被组织为B+树结构。MySQL可以在为B+树定义的任意长度的密钥的前缀上构建哈希索引,具体取决于针对索引的搜索模式。哈希索引可以是部分的; 整个B树索引不需要缓存在缓冲池中。

  • 在MySQL 5.6及更高版本中,InnoDB 利用表的快速单值查找的另一种方法是使用InnoDB memcached插件。有关详细信息,请参见 第14.20节“InnoDB memcached插件”。

  • 另请参见B+树,缓冲池,哈希索引,memcached,页面,二级索引

adaptive hash index
An optimization for InnoDB tables that can speed up lookups using = and IN operators, by constructing a hash index in memory. MySQL monitors index searches for InnoDB tables, and if queries could benefit from a hash index, it builds one automatically for index pages that are frequently accessed. In a sense, the adaptive hash index configures MySQL at runtime to take advantage of ample main memory, coming closer to the architecture of main-memory databases. This feature is controlled by the in

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
InnoDB是MySQL的一种存储引擎,它提供了一种基于索引的数据存储和检索机制。InnoDB索引原理可以简单概括如下: 1. B+树索引结构:InnoDB使用B+树作为索引结构,每个叶子节点存储了真实数据的引用。B+树采用多层次的树状结构,可以快速定位到目标数据。 2. 聚簇索引InnoDB的主键索引是聚簇索引,即将数据行直接存储在按主键顺序排列的B+树叶子节点上。这样可以将相邻的数据存储在一起,提高数据的读取效率。 3. 二级索引:除了主键索引外,InnoDB还支持创建二级索引。二级索引的叶子节点中存储的是主键值,方便根据非主键列进行查询。 4. 页分裂和合并:当B+树的节点已满时,InnoDB会进行页分裂操作,将数据均匀地分布到新的节点上。而当节点中的数据过少时,InnoDB会进行页合并操作,减少B+树的高度,提高查询效率。 5. 自适应哈希索引InnoDB在内存中维护了一个自适应哈希索引,用于加速查询。当某个二级索引的使用频率较高时,InnoDB会自动创建或更新自适应哈希索引,加快查询速度。 6. 重复键处理:InnoDB索引不允许出现重复的键值。当插入数据时发现重复键值,InnoDB会采用相应的处理策略,如回滚或者忽略。 总的来说,InnoDB索引使用B+树结构,支持聚簇索引和二级索引,同时采用页分裂和合并、自适应哈希索引和重复键处理等策略来提高索引的效率和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值