Skip to content

Commit 1a60f6b

Browse files
authored
Merge pull request #281 from wufei-png/wf/hash
chore: add hash index description
2 parents 2ddd0bd + 386702e commit 1a60f6b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

mysql/index/index_interview.md

+8-2
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,15 @@ B+Tree 只在叶子节点存储数据,而 B 树 的非叶子节点也要存储
152152

153153
***3, B+Tree vs Hash***
154154

155-
Hash 在做等值查询的时候效率贼快,搜索复杂度为 O(1)。
155+
Hash 在做等值查询的时候效率贼快,搜索复杂度为 O(1)。但也有其局限性:
156156

157-
但是 Hash 表不适合做范围查询,它更适合做等值的查询,这也是 B+Tree 索引要比 Hash 表索引有着更广泛的适用场景的原因。
157+
- **数据顺序性**:哈希表无法提供数据的顺序访问,更适合做等值的查询。很多查询不仅需要找到特定的键值,还需要根据键值排序来返回结果,或者执行范围查询。B+Tree 可以很好地支持,Hash 表则无法做到。
158+
159+
- **空间效率**:可能导致空间利用效率不高,特别是在处理大量数据时。数据量变大时冲突也会增加。
160+
161+
- **需要重新构建**:哈希索引通常只存储在内存中,当数据库重启或发生崩溃时,需要重新构建。
162+
163+
因此,B+Tree 索引要比 Hash 表索引有着更广泛的适用场景。
158164

159165
### 按物理存储分类
160166

0 commit comments

Comments
 (0)