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

80 阅读2分钟

认识存储和数据库

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实现了存储的底层实现,更方便存储、读取、操作,对开发者友好;