存储和数据库简介 | 青训营笔记

120 阅读3分钟

笔记1.webp

存储和数据库

存储系统

什么是存储系统

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

系统特点

  • 作为后端软件的底座,性能敏感
  • 存储系统代码,既“简单”又“复杂”
  • 存储系统软件架构、容易受硬件影响

存储器层级结构

  • 第一层:通用寄存器堆
  • 第二层:指令与数据缓冲栈
  • 第三层:高速缓冲存储器
  • 第四层:主储存器(DRAM)
  • 第五层:联机外部储存器(硬磁盘机)
  • 第六层:脱机外部储存器(磁带、光盘存储器等)

这就是存储器的层次结构~~~ 主要体现在访问速度~~~

RAID技术

RAID全称RedundanArrayofInexpensiveDisk(磁盘阵列技术)

出现背景
  • 单块大容量磁盘的价格 > 多块小容量磁盘

    RAID 0

    1.多块磁盘简单组合

    2.数据条带化存储,提高磁盘带宽

    3.没有额外的容错设计

  • 单块磁盘的写入性能 < 多块磁盘的并发写入性能

    RAID 1

    1.一块磁盘对应一块额外镜像盘

    2.真实空间利用率仅50%

    3.容错能力强

  • 单块磁盘的容错能力有限,不够安全

    RAID 0 + 1

    1.结合了RAID 0和RAID 1

    2.真实空间利用率仅50%

    3.容错能力强,写入带宽好

数据库

数据库分为关系型数据库和非关系型数据库

关系型数据库特点

关系型数据库是存储系统,但在存储之外,又发展出其他能力

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

非关系型数据库特点

非关系型数据库也是存储系统,但是一般不要求严格的结构化

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

数据库 VS 经典存储

结构化数据管理

一条用户注册数据

数据库:写入关系型数据库,以表的形式管理

经典存储:写入文件,自行定义管理结构

事务

凸显出数据库支持 事务 的优越性

事务具有:

  • A(tomicity),事务内的操作要么做全,要么不做
  • C(onsistency),事务执行前后,数据状态是一致的
  • I(solation),可以隔离多个并发事务,避免影响
  • D(urability),事务一旦提交成功,数据保证持久性

复杂查询能力

数据库:灵活简洁

经典存储:僵化复杂

总结

存储系统

  • 块存储:存储软件栈里面的底层系统,接口过于朴素
  • 文件存储:日常使用最广泛的存储系统,接口十分友好,实现五花八门
  • 对象存储:公有云上的王牌产品,immutable语义加持
  • key-value存储:形式最灵活,存在大量的开源/黑盒产品

数据库系统

  • 关系型数据库:基于关系和关系代数构建的,一般支持事务和SQL访问,使用体验友好的产品
  • 非关系型数据库:结构灵活,访问方式灵活,针对不同场景有不同的针对产品