深入理解数据库存储 | 青训营笔记

74 阅读2分钟

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

一条数据的生命周期

1. 数据从用户输入时产生

{
    "user_name" : "Alex",
    "password" : "helloworld",
    ......
}

2. 数据在服务器和数据库包括其他系统间流动

数据流动到后端服务器进行加工处理和修饰,并打包发送给数据库

3. 在内存中进行数据的持久化

校验数据的合法性 ———> 修改内存(用高效数据结构组织数据)———> 写入存储介质(以性能友好地方式写入硬件)

存储系统

什么是存储系统?

即一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

系统特点

  • 作为后端软件的底座,性能敏感
  • 存储系统软件架构,容易受硬件影响,需要和硬件一起变革
  • 存储系统代码,既“简单”又“复杂”,即在异常处理上尽可能处理任何可能发生的情况

RAID技术

R(edundant)A(rray)I(nexpensive)D(isks)(一种经典的存储技术)

RAID的出现背景

  • 单块大容量磁盘价格远高于多块小容量磁盘
  • 单块磁盘的写入性能远小于多块磁盘的并发写入性能
  • 单块磁盘的容错率有限,不够安全

1. RAID 0

  • 多块磁盘简单组合
  • 数据条带化存储,提高磁盘带宽
  • 没有额外的容错设计

2. RAID 1

  • 一块磁盘对应一块额外镜像
  • 真实空间利用率仅50%
  • 容错能力强

3. RAID 0+1

  • 两种RAID综合使用
  • 综合高带宽和高容错
  • 空间利用率依然只有50%

数据库

关系型数据库

「关系模型」

关系=集合=任意元素组成的若干有序偶对,反映了事物间的关系

「关系代数」

关系代数=对关系作运算的抽象查询语言(SQL)

关系型数据库优点

  • 结构化数据友好
  • 支持事物
  • 支持复杂查询语言

非关系型数据库优点

  • 半结构化数据友好
  • 可能支持事物
  • 可能支持复杂查询语言

忙着写抖音,没时间记笔记了