1.1 存储系统
1.1.1 系统概览
-
什么是存储系统?
一个提供了读写、控制类接口,能够安全有效的把数据持久化的软件。
-
User(用户)/Medium(媒介)/Memory(内存)/Network(网络)
①系统要让用户使用,同时数据需要持久化地写在存储器之上,User要与Medium打交道。
②设计很多性能高的,操作方便的内存数据结构,来帮助我们系统达到更好的性能。作为存储系统,既要能提供读写,又要能提供各种控制,还要跟存储介质、网络、内存打交道,最终才能做出来一个存储系统。
③通过网络,把一个单机系统发展成为分布式存储系统。(可以满足比较苛刻场景的需求)
1.1.2 系统特点
-
作为后端软件的底座,性能敏感。
-
存储系统代码,”简单“又“复杂”。
存储系统在I/O路径上,代码不能写得很复杂,也不能有很多分支,把系统系能降低。
在非I/O路径上,或者在I/O路径上的一些错误的分支上,我们要考虑到多种异常情况(软件、硬件损坏)。
- 存储系统软件架构,容易受硬件影响。 当硬件变革时,软件需要顺应硬件来进行变革。
1.1.3 存储器层级结构
1.1.4 RAID技术
通过RAID,单机存储系统可以做到高性能、高性价比、高可靠性。
RAID出现背景:
- 单块大容量磁盘的价格>多块小容量磁盘
- 单块磁盘的写入性能<多块磁盘的并发写入性能
- 单块磁盘的容错能力有限,不够安全
RAID 0:
- 多块磁盘简单组合
- 数据条带化存储,提高磁盘带宽
- 没有额外的容错设计
RAID 1:
- 一块磁盘对应一块额外镜像盘
- 真实空间利用率仅50%
- 容错能力强
RAID 0+1:
- 结合了RAID 0和RAID 1
- 真实空间利用率仅50%
- 容错能力强,写入带宽好
2.1 数据库
2.1.1 概览
分为关系型数据库和非关系型数据库
关系型数据库是存储系统,在存储之外又发展出其他能力。
关系型数据库特点:
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语言
非关系型数据库也是存储系统,但一般不要求严格的结构化。
非关系型数据库特点:
- 半结构化数据友好
- 可能支持事务(ACID)
- 可能支持复杂查询语言
2.1.2 数据库VS经典存储
①结构化数据管理
②事务能力
③复杂查询能力
2.1.3 数据库使用方式
常用操作:
- Insert
- Update
- Select
- Delete
- Where子句
- GroupBy
- OrderBy ……
定义修改操作:
- Create user
- Create database
- Create table
- Alter table ……
3.1 存储与数据库新技术
个人总结
这几个视频讲的主要是数据库的背景入门之类的,还没有讲到代码部分,要是入门数据库,还是得往后看或者去其他视频网站找资源学写代码,掌握数据库的精髓。