首页/数据/SQL 速查/哈希索引的适用边界
性能与执行计划72 条

哈希索引的适用边界

哈希索引只支持等值查找,不支持范围与排序:MySQL 的 Memory 引擎可显式建哈希索引,InnoDB 的自适应哈希索引由引擎内部管理。

SQL 速查数据更新于 2026-10-12

示例

示例
-- MySQL:Memory 引擎显式哈希索引
CREATE TABLE session_kv (
  k VARCHAR(64) NOT NULL,
  v VARCHAR(255),
  KEY USING HASH (k)
) ENGINE = MEMORY;

-- PostgreSQL:哈希索引,只支持等值
CREATE INDEX idx_kv_k ON session_kv USING hash (k);
-- 适用范围窄(等值比较),多数场景 B 树更通用
支持仅等值比较(=,IN 可视为等值集合)
不支持范围、排序、前缀匹配、模糊匹配
InnoDB自适应哈希索引是内部优化,不可手动创建或删除

易错点

  • 把哈希索引当通用加速手段:范围与排序场景会直接失效,选型前先确认查询只有等值条件
  • 在 InnoDB 表上找“建哈希索引”的语法:InnoDB 不支持显式哈希索引,自适应哈希由引擎自管理

数据来源与参考

  • MySQL 8.0 Reference Manual §8.3.8 Comparison of B-Tree and Hash Indexes
  • PostgreSQL Documentation §11.2 Index Types
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌