【数据库】数据库存储模型 - hippowc/hippowc.github.io GitHub Wiki

数据库是按照一定数据结构所定义并且用来组织,管理,存储数据的仓库。大家熟悉的MySQL数据库。就是其中的关系型数据库。而像redis这种的又是非关系型数据库,这类技术被称之为NoSQL,NoSQL是一种新型的技术。可以实现高吞吐量,不支持ACID数据库的设计范式。NoSQL没有统一的查询语言。

按照数据库存储模型来说分为以下几类:

  • 行式存储模型
  • 列式存储模型
  • 文档数据模型
  • 键值数据模型
  • 图式数据模型

行式存储模型

也就是我们熟悉的关系型数据库,它是一行一行来存储的。

列式存储模型

  • 应用场景:分布式数据存储,在分布式文件系统上支持随机读写的分布式数据存储。
  • 典型的产品:Hadoop/Hbase,Hypertable
  • 数据模型:以“列”为中心进行存储,将同一列数据存储在一起。
  • 优点:快速查询,高可扩展性,易于实现分布式扩展。

文档数据模型

  • 应用场景:非强事务需求的web应用。
  • 典型的产品:MongoBD,Elasticsearch
  • 数据模型:键值模型,存储为文档模型
  • 优点:数据模型无须事先定义,存储很随意。

键值数据模型

  • 应用场景:内容缓存,用于大量的并行数据访问的高负载场景。
  • 典型的产品:Redis,DynamoDB,LevelDB
  • 数据模型:基于哈希表实现的key-value
  • 优点:查询迅速,写入迅速
  • 缺点:数据没有什么结构

图式数据模型

  • 应用场景:社交网络、推荐系统,关系图谱
  • 典型的产品:Neo4J
  • 数据模型:图式结构
  • 优点:适用于图式计算场景