【问题标题】:MySQL when can I use HASH instead of BTREEMySQL 什么时候可以使用 HASH 代替 BTREE
【发布时间】:2013-01-03 07:18:54
【问题描述】:

由于MySQL在创建索引时默认使用BTREE,有没有可以使用HASH的实例?例如,如果我的表只包含只有 INT UNSIGNED 值的外键。在这种情况下用 HASH 覆盖 BTREE 是不是一个很好的改进?

不确定是否重要,但我使用的是InnoDB

【问题讨论】:

标签: mysql hash indexing innodb b-tree


【解决方案1】:

请看这里:https://dev.mysql.com/doc/refman/8.0/en/glossary.html#glos_hash_index

哈希索引

一种索引类型,用于使用相等运算符而不是范围运算符(例如大于或 BETWEEN)的查询。 It is available for MEMORY tables。尽管由于历史原因哈希索引是 MEMORY 表的默认值,但该存储引擎还支持 B 树索引,这通常是通用查询的更好选择。

MySQL 包含这种索引类型的变体,即自适应哈希索引,如果需要,它会根据运行时条件为 InnoDB 表自动构建。

【讨论】:

    【解决方案2】:

    HASH 索引类型仅支持MEMORY(又名HEAP)存储引擎。

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 2021-10-28
      • 2021-11-29
      • 2010-09-28
      • 2012-07-09
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多