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

54 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第14天

经典案例

image-20230212192505021

用户注册,按下注册按钮,于是数据从无到有产生,向后端飞去

数据流动

一条注册数据:

{
    "username":"小明",
    "password": "hello",
}

然后发送给服务器,服务器再存储到数据库

数据持久化

  1. 校验数据合法性: "小明"是否已经存在
  2. 修改内存: 用高效的数据结构组织数据
  3. 写入存储介质: 以寿命&性能友好的方式写入硬件

潜在问题

  • 数据库怎么保证数据不丢
  • 数据库怎么处理多人同时修改
  • 为什么用数据库,可以用别的存储系统吗?
  • 数据库只能处理数据化结构
  • 有哪些操作数据库的方式?

存储系统

什么是存储系统

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

系统特点
  • 作为后端软件底座,性能敏感
  • 存储系统代码,既"简单"又"复杂" (I/O简单,错误处理复杂)
  • 存储系统软件架构,容易受硬件影响
存储器层级结构

uTools_1676202051809

数据怎么从应用到存储介质

uTools_1676202226391

  • 缓存很重要,贯穿整个存储体系
  • 拷贝很昂贵,应该尽量减少
  • 硬件设备五花八门,需要有抽象同一的接入层
RAID技术

R(edundant)A(rray) of I(nexpensive) D(disks)

背景:

  • 单块大容量磁盘价格>多块小容量磁盘
  • 单块磁盘写入性能>多块磁盘的并发吸入性能
  • 单块磁盘的容错能力有限,不够安全
RAID 0
  • 多块磁盘简单组合
  • 数据条带化存储,提高磁盘贷款
  • 没有额外容错设计
RAID 1
  • 一块磁盘对应一块额外的镜像盘
  • 真实空间率仅50%
  • 容错能力强
RAID 0+1
  • 结合RAID 0 和 RAID 1
  • 真实空间利用率50%
  • 容错能力强,写入带宽好