温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库Key键存储原理是什么

发布时间:2026-09-21 17:52:17 来源:亿速云 阅读:98 作者:小樊 栏目:数据库

“数据库 Key 键存储原理”要分场景来说,不同数据库对“Key(键)”的定义和存储方式差别很大。下面按常见类型系统讲清楚原理。


一、关系型数据库(MySQL / PostgreSQL / Oracle)

1. Key 是什么

在关系库中,Key 通常指:

  • 主键(Primary Key)
  • 唯一键(Unique Key)
  • 外键(Foreign Key)
  • 索引键(Index Key)

2. 存储原理(以 InnoDB 为例)

核心:数据即索引(聚簇索引)

  • 主键 → 聚簇索引(Clustered Index)
    • 表数据按主键顺序物理存储
    • 叶子节点 = 整行数据
  • 二级索引 → 非聚簇索引
    • 叶子节点存:索引列 + 主键值
    • 查数据时:先走索引,再“回表”

3. Key 在磁盘上的结构

  • 使用 B+ 树
  • Key 在树中:
    • 非叶子节点:用于路由
    • 叶子节点:有序存储 Key

✅ 特点:有序、支持范围查询、写入需要维护树结构


二、键值数据库(Redis / RocksDB / LevelDB)

1. Key 是什么

就是一个 不解释的二进制字符串

  • 不关心结构
  • 只负责:
    • 存(Put)
    • 取(Get)
    • 删(Delete)

2. 存储原理分类

(1)内存型(Redis)

  • Key → Hash Table
  • 时间复杂度:O(1)
  • 结构:
dict {
  key -> value
}
  • 支持过期、LRU、持久化

(2)LSM-Tree 型(RocksDB / LevelDB)

  • 写:
    • 先写 MemTable(内存)
    • 再落盘为 SSTable
  • 读:
    • 内存 → 多层磁盘
  • Key 是有序的(Sorted String Table)

✅ 特点:写快、读稍慢、适合海量数据


三、文档 / 列式数据库(MongoDB / HBase)

1. MongoDB

  • _id 是主键
  • 默认用 B+ Tree 索引
  • 文档按 _id 排序存储

2. HBase

  • RowKey = 唯一 Key
  • 按 RowKey 字典序存储
  • 底层是:
    • HDFS + LSM

✅ Key 设计直接影响性能(热点问题)


四、Key 存储的通用底层原理总结

维度 原理
查找 哈希 / 树
有序性 B+树有序,哈希无序
写入 维护索引结构
磁盘 页 / Block
内存 Hash / SkipList

五、一句话总结

数据库的 Key 本质是一个“用于快速定位数据的索引结构”,底层要么用哈希(快但无序),要么用树(慢一点但有序)。

如果你是指 某一个具体数据库(如 Redis / MySQL / HBase),我可以单独深入讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手