存储与数据库 | 青训营笔记

58 阅读2分钟

1. 存储系统

Q:什么是存储系统?

A:提供了读写、控制类接口,能够安全有效地把数据持久化的软件

系统特点

  • 高性能
  • 代码简单,但考虑的异常处理场景要复杂
  • 软件易受硬件影响

存储器层级结构

金字塔形

塔尖存储设备:容量小,但支持超高性能访问

塔底存储设备:容量大,但访问速度极慢

RAID技术

Q:单机存储系统怎么做到高性能/高性价比/高可靠性?

A:R(edundant)A(rray)I(nexpensive)D(isks)

2. 数据库

  • 关系型数据库
  • 非关系型数据库

2.1 关系型数据库

关系型数据库是存储系统,但在存储之外,还发展出其他能力

  • 对结构化数据友好
  • 支持事务
  • 支持复杂的查询语言(如SQL)

2.2 非关系型数据库

非关系型数据库也是存储系统,但一般不要求严格的结构化

  • 对半结构化数据友好
  • 可能支持事务
  • 可能支持复杂的查询语言

3. 数据库 vs 经典存储

3.1 结构化数据管理

数据库:写入关系型数据库,以表的形式进行管理

经典存储:写入文件,自行定义管理结构

3.2 事务能力

数据库具有支持事务的优越性

事务的特性

  • A(tomicity):事务内的操作只有全部执行和全不执行
  • C(onsistency):事务执行前后,数据状态一致
  • I(solation):可以隔离多个并发事务
  • D(urability):事务一旦提交成功,数据保持持久性

3.3 复杂查询能力

数据库:灵活、代码简洁

经典存储:僵化,代码复杂

4. 主流存储系统

4.1 单机存储

单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互

  • 本地文件存储
  • key-value存储

4.2 分布式存储

分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互

  • 分布式文件系统
  • 分布式对象存储

4.3 单机数据库

单机数据库=单个计算机节点上的数据库系统

4.3.1 单机关系型数据库

4.3.2 单机非关系型数据库

4.4 分布式数据库

单机数据库的问题

  • 容量:单点容量有限,受硬件限制

image.png

  • 弹性
  • 性价比