You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

键值型与图型NoSQL数据库的数据存储形式及样例咨询

不同类型数据存储的存储形态示例

我目前正在学习数据工程,正在了解不同数据存储中数据的存储形态,以下是整理的完整示例,补充了缺失的图数据库、键值数据库存储形态说明:

给定原始Bonuses表:
ID         Last    First   Bonus
1          Doe     John    8000
2          Smith   Jane    4000
3          Beck    Sam     1000

行式数据库(以PostgreSQL为例)

按行存储,整行所有字段数据连续排布,适合需要同时查询整行多字段的场景:

1,Doe,John,8000;2,Smith,Jane,4000;3,Beck,Sam,1000;

列式数据库(典型代表为ClickHouse,原示例标注的MariaDB默认是行式存储)

按列存储,同一列的所有数据连续排布,适合统计分析类的单列聚合查询场景:

1,2,3;Doe,Smith,Beck;John,Jane,Sam;8000,4000,1000;

列族数据库(以Cassandra为例)

以行键为核心,同一行的多个关联列组成列族集中存储,适合高并发的宽表查询场景:

"Bonuses" : {
    row1 : { "ID":1, "Last":"Doe", "First":"John", "Bonus":8000},
    row2 : { "ID":2, "Last":"Smith", "First":"Jane", "Bonus":4000},
    row3 : { "ID":3, "Last":"Beck", "First":"Sam", "Bonus":1000}
}

文档型数据库(以MongoDB为例)

每条数据为独立的BSON文档,支持灵活的字段结构,适合半结构化数据存储场景:

document1  
{ 
    "ID": 1,
    "Last": "Doe",
    "First": "John",
    "Bonus": 8000
}
document2
{
    "ID": 2,
    "Last": "Smith",
    "First": "Jane",
    "Bonus": 4000
} 
document3
{
    "ID": 3,
    "Last": "Beck",
    "First": "Sam",
    "Bonus": 1000
}

图数据库(以Neo4j为例)

以节点、关系、属性为核心存储单元,适合存储强关联数据,你给出的奖金表可存储为员工类型的节点,形态如下:

(:员工 {ID:1, Last:"Doe", First:"John", Bonus:8000})
(:员工 {ID:2, Last:"Smith", First:"Jane", Bonus:4000})
(:员工 {ID:3, Last:"Beck", First:"Sam", Bonus:1000})

后续如果需要关联员工的所属部门、上级、项目等数据,直接新增对应节点和关联关系即可,无需修改现有节点结构。

键值数据库(以Redis为例)

以唯一键映射对应值的形式存储,读写性能极高,适合热点数据缓存场景,针对该奖金表可使用哈希结构存储,形态如下:

# 键格式为 bonuses:员工ID,值为哈希结构存储的员工完整奖金信息
bonuses:1 = {ID:1, Last:"Doe", First:"John", Bonus:8000}
bonuses:2 = {ID:2, Last:"Smith", First:"Jane", Bonus:4000}
bonuses:3 = {ID:3, Last:"Beck", First:"Sam", Bonus:1000}

如果只需要高频查询员工奖金,也可以简化存储结构,键设为bonus:员工ID,值直接存奖金数值,查询效率更高。

内容的提问来源于stack exchange,提问作者Renz Carillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:15:01