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 分布式数据库
单机数据库的问题
- 容量:单点容量有限,受硬件限制
- 弹性
- 性价比