数据库使用哈希索引(Hash Index),主要是因为在某些场景下它比传统的 B+ 树索引更快、更简单。下面从原理、优势、局限和适用场景几个角度解释“为什么用哈希索引”。
哈希索引基于哈希表:
hash(key))查询时:
WHERE key = 'abc'
只需一次哈希计算 + 一次定位,就能找到数据。
哈希索引最适合:
WHERE id = 100
WHERE email = 'a@b.com'
✅ 比 B+ 树快很多(尤其数据量大时)
如:
内存中随机访问成本低,哈希索引优势明显。
如果业务只关心“是否存在 / 是否相等”,哈希索引非常高效。
WHERE age > 20
WHERE id BETWEEN 10 AND 100
哈希索引 完全无法使用
ORDER BY id
哈希索引无法保证顺序
INDEX(a,b)
WHERE b = 1
哈希索引无法利用组合索引的部分列
| 数据库 | 使用方式 |
|---|---|
| MySQL (Memory) | 默认哈希索引 |
| MySQL (InnoDB) | 自适应哈希索引(自动) |
| PostgreSQL | 支持 USING HASH |
| Redis | 核心结构 |
| MongoDB | 某些内存结构 |
数据库用哈希索引,是因为在“等值查询 + 内存友好”的场景下,它比 B+ 树更快、更简单;但由于不支持范围和排序,它不能替代 B+ 树。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。