认识存储和数据库
1. 经典案例
数据产生-流动-持久化完整的生命周期
案例:
- 数据产生:注册账户,填写个人资料。
- 数据流动:手机端产生结构化数据➡️后端服务器➡️数据库系统➡️其他系统
- 数据持久化:校验数据的合法性(是否存在)➡️修改内存(高效的数据结构)➡️写入存储介质(寿命&性能 友好)
- 潜在问题:数据丢失、并发操作、存储系统、结构化数据、操作数据库
2. 存储 VS 数据库
-
存储系统是什么?读写+持久化。用户、介质、内存、网络之间的关系
-
存储系统的特点:关注性能、代码I/O简单,异常场景复杂、软件受硬件影响
-
存储器层级结构:金字塔形,容量和性能反比。persistent memory,折衷。
-
存储系统(软件):user data➡️disk,硬件设计不一定满足软件需求,这时通过缓存来实现。在不同软件层之间,缓存也很重要。数据拷贝很昂贵,消耗CPU,需要尽量减少。硬件设备五花八门,需要统一的软硬件接入层。
-
RAID技术:redundant array of inexpensive disks
- 高性能、高性价比、高可靠性
- 背景:单块在价格、性能、容错能力方面不足多块
- RAID0:简单组合、条带存储、无容错
- RAID1:高容错,1对1的容错
- RAID0+1:容错、性能的折衷,利用率仍为50%
-
数据库与存储的区别
- 关系=集合=事物之间的关系;关系代数=对关系进行运算;SQL=便于人类阅读的关系代数
- 关系型数据库与存储:关系型数据库是存储系统。关系型数据库延伸:结构化数据、支持ACID事务,支持查询语言。
- 非关系型数据库与存储:也是存储系统。但是数据并不一定结构化,可能支持事务或者查询语言
- 数据库vs存储系统:DB以表形式、存储需要自定义文件及管理结构;DB支持ACID事务特性;DB支持复杂查询能力。总体看来DB实现了存储的底层实现,更方便存储、读取、操作,对开发者友好;