这是我参与「第五届青训营」伴学笔记创作活动的第14天
前言
今天主要通过案例的形式讲解了存储与数据库
经典案例
案例主要介绍了数据从产生到流动再到最后持久化的过程
产生
初次使用一个app时,注册账户要填一些信息。在这个过程中,数据就产生了。
流动
数据由客户端向服务器传递的过程中,便产生了数据的流动。
持久化
数据到达服务器后,为了更好的为用户服务,数据将会被记录到某个地方。这就是数据的持久化。
存在的问题
上面的过程是一条数据的完整的生命周期。在这个过程中,存在许多的问题。
- 数据不丢
- 多人同时修改
- 存储的多元化
- 数据处理的单一性
- 处理方式与编程语言
存储与数据库的简介
存储
简介
存储系统是一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以被称为存储系统。
特点
- 性能敏感
- 容易受硬件影响
- 代码简单又复杂
数据的传递时要注意的点
- 缓存很重要,作为数据逐级传递时的中转站
- 拷贝很昂贵,应该尽量减少
- 硬件很多,应该具有统一的抽象接口
RAID技术
背景
- 单块大容量硬盘的价格 >> 多块小容量的硬盘
- 单块一个盘写入性能 << 多块硬盘并发写入的性能
- 单块硬盘易损坏
数据库
- 关系型数据库
- 非关系型数据库
概念
- 关系:任意元素组成的若干有序偶对,反映了事物间的关系
- 关系代数:对关系运算的抽象查询语言
- SQL:一种DSL,方便人类阅读的关系代数表达式
关系型数据库的特点
- 是存储系统
- 对结构化数据友好
- 支持事务
- 支持复杂查询语言
非关系型数据库的特点
- 对非结构化数据友好
- 可能支持事务
- 可能支持复杂的查询语言
主流产品
单机存储
单个计算机节点上的存储软件系统,一般不涉及网络交互
- 本地文件系统
- k-v存储
分布式存储
在单机存储基础上实现了分布式协议,涉及大量网络交互
- 分布式文件存储
- 分布式对象存储
单机数据库
单个计算机节点上的数据库系统,事务在单机上执行,也可能通过网络交互实现分布式事务
- 关系型
- 非关系型
单机数据库存在的问题
- 容量
- 弹性
- 性价比
分布式数据库
- 多写
- 内存弹性
- 分布式事务优化
新技术演进
- 架构变更
- AI增强
- 硬件革命
- 存储介质
- 计算单元
- 网络硬件