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

74 阅读1分钟

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

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  数据库 与 经典存储

结构化数据管理

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

写入文件:自行定义管理结构。

事务能力

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

事务具有:

    (1A(tomicity),事务内的操作要么全做,要么不做。

    (2C(onsistency),事务执行前后,数据状态是一致的。

    (3l(solation),可以隔离多个并发事务,避免影响。

    (4D(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)进行操作。