Day 8 Go | 青训营笔记

72 阅读2分钟

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

存储系统的概念: 一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统 使用数据库潜在的问题

  1. 数据库怎么保证数据不丢?
  2. 数据库怎么处理多人同时修改的问题?
  3. 为什么用数据库,除了数据库还能存到别的存储系统吗?
  4. 数据库只能处理结构化数据吗?
  5. 有哪些操作数据库的方式,要用什么编程语言?

存储系统对性能及其敏感。要做到超高性能的。要考虑硬件的损坏问题,存储系统软件架构容易受硬件影响。

单机存储系统可以利用RAID做到高性能 /高性价比 /高可靠性 R(edundant) A(rray) of I(nexpensive) D(isks) 因为单块大容量磁盘的价格 >多块小容量磁盘、单块磁盘的写入性能< 多块磁盘的并发写入性能、单块磁盘的容错能力有限,不够安全这些问题,所以诞生了RAID
优点:
RAID O:多块磁盘简单组合、数据条带化存储,提高磁盘带宽、没有额外的容错设计
RAID 1:一块磁盘对应一块额外镜像盘、真实空间利用率仅50%、容错能力强
RAID 0 +1:结合了RAID O 和 RAID 1、真实空间利用率仅50%

关系 = 集合 = 任意元素组成的若干有序偶对反应了事物间的关系
关系型数据库是存储系统,但是在存储之外,又发展出其他能力
非关系型数据库也是存储系统,但是一般不要求严格的结构化

以SQL语句为例,要操作数据时,支持以下操作:Insert、Update、Select、Delete、Where子句、GroupB、Order By等

存储系统主流产品类别:

单机存储【单个计算机节点上的存储软件系统,一般不涉及网络交互。例如:本地文件系统,key-value存储】
分布式存储【在单机存储基础上实现了分布式协议,涉及大量网络交互.例如:分布式文件系统,分布式对象存储】
单机关系型数据库【单个计算机节点上的数据库系统,事务在单机内执行,也可能通过网络交互实现分布式事务】
单机非关系型数据库【MongoDB、Redis、Elasticsearch】
分布式数据库【能解决:容量,弹性,性价比的问题】