入门“数据库哈希算法”,建议把它拆成两条线:一是哈希算法本身的基础,二是哈希在数据库中的典型应用。下面给你一个循序渐进的学习路径。
哈希函数 H(x) 通常具备:
例子:
MD5("abc") = 900150983cd24fb0d6963f7d28e17f72
数据库通常不关心“安全”,更关心“快 + 分布均匀”
数据库中的哈希主要用于 “快速定位”,而不是加密。
key → hash(key) → 桶(bucket) → 数据位置
示例:
hash("user_1001") % 16 = 3
→ 去第 3 个桶找数据
| 对比项 | 哈希索引 | B+ 树索引 |
|---|---|---|
| 等值查询 | ⚡ 极快 | 快 |
| 范围查询 | ❌ 不支持 | ✅ 支持 |
| 排序 | ❌ | ✅ |
| 数据库例子 | MySQL Memory | MySQL InnoDB |
传统取模:
hash(key) % N
一旦 N 变化(加机器),几乎所有数据都要迁移。
✅ 增加/减少节点只影响一小部分数据
这是分库分表、分布式数据库的必修课
index = {}
def put(key, value):
h = hash(key) % 16
index.setdefault(h, []).append((key, value))
如果你愿意,我可以:
你更偏哪方面?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。