【数据库】数据库存储模型 - hippowc/hippowc.github.io GitHub Wiki
数据库是按照一定数据结构所定义并且用来组织,管理,存储数据的仓库。大家熟悉的MySQL数据库。就是其中的关系型数据库。而像redis这种的又是非关系型数据库,这类技术被称之为NoSQL,NoSQL是一种新型的技术。可以实现高吞吐量,不支持ACID数据库的设计范式。NoSQL没有统一的查询语言。
按照数据库存储模型来说分为以下几类:
- 行式存储模型
- 列式存储模型
- 文档数据模型
- 键值数据模型
- 图式数据模型
行式存储模型
也就是我们熟悉的关系型数据库,它是一行一行来存储的。
列式存储模型
- 应用场景:分布式数据存储,在分布式文件系统上支持随机读写的分布式数据存储。
- 典型的产品:Hadoop/Hbase,Hypertable
- 数据模型:以“列”为中心进行存储,将同一列数据存储在一起。
- 优点:快速查询,高可扩展性,易于实现分布式扩展。
文档数据模型
- 应用场景:非强事务需求的web应用。
- 典型的产品:MongoBD,Elasticsearch
- 数据模型:键值模型,存储为文档模型
- 优点:数据模型无须事先定义,存储很随意。
键值数据模型
- 应用场景:内容缓存,用于大量的并行数据访问的高负载场景。
- 典型的产品:Redis,DynamoDB,LevelDB
- 数据模型:基于哈希表实现的key-value
- 优点:查询迅速,写入迅速
- 缺点:数据没有什么结构
图式数据模型
- 应用场景:社交网络、推荐系统,关系图谱
- 典型的产品:Neo4J
- 数据模型:图式结构
- 优点:适用于图式计算场景