认识存储与数据库 | 青训营笔记
2.1 存储系统
系统概览
存储系统是一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件。
系统特点
(1)作为后端软件的底座,性能敏感。
(2)存储系统软件架构,容易受硬件影响。
(3)存储系统代码,既“简单”又“复杂”。
简单:存储系统性能要求高,在读和写的路径上,代码需要写的简单,不能有很多分支。
复杂:在异常处理的分支上需要复杂,以此来应对不同的异常场景。
数据从应用到存储介质
缓存:重要,贯穿整个存储体系。
拷贝:很昂贵,应该尽量减少。
硬件设备:复杂多样,需要有抽象统一的接入层。
RAID技术
RAID出现的背景:
(1)单块大容量磁盘的价格 >多块小容量磁盘。
(2)单块磁盘的写入性能 < 多块磁盘的并发写入性能。
(3)单块磁盘的容错能力有限,不够安全。
RAID:
0:
(1)多块盘简单组合。
(2)数据条带化存储,提高磁盘带宽。
(3)没有额外的容错设计。
1:
(1)一块磁盘对应一块额外镜像盘。
(2)真实空间利用率仅50%。
(3)容错能力强。
0+1:
(1)结合了RAID0和RAID1。
(2)真实空间利用率仅50%。
(3)容错能力强,写入带宽好。
2.2 数据库
关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力:
(1)结构化数据友好。
(2)支持事务(ACID)。
(3)支持复杂查询语言。
非关系型数据库特点
非关系型数据库也是存储系统,但是一般不要求严格的结构化:
(1)半结构化数据友好。
(2)可能支持事务 (ACID)。
(3)可能支持复杂查询语言。
2.3 数据库 与 经典存储
结构化数据管理
写入关系型数据库:以表形式管理。
写入文件:自行定义管理结构。
事务能力
凸显出数据库支持“事务”的优越性。
事务具有:
(1)A(tomicity),事务内的操作要么全做,要么不做。
(2)C(onsistency),事务执行前后,数据状态是一致的。
(3)l(solation),可以隔离多个并发事务,避免影响。
(4)D(urability),事务一旦提交成功,数据保证持久性。
复杂查询能力
数据库:灵活,简洁。
经典存储:僵化,复杂。
2.4 数据库使用方式
Everything is D(omain) S(pecific) L(anguage) —> maybe SQL
以SQL为例,要操作数据时,支持以下操作:
Insert
Update
Select
Delete
Where子句
GroupBy
OrderBy
要对数据定义做修改时,支持以下操作:
Create user
Create database
Create table
Alter table
…
学习总结:
存储系统是一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件。RAID技术是一种用于存储系统的技术,它通过组合多块磁盘来提高性能和容错能力。数据库分为关系型数据库和非关系型数据库。数据库可以通过特定领域语言(例如SQL)进行操作。