存储与数据库理论篇 | 青训营笔记

94 阅读2分钟

1. 实际案例 —— 数据的产生

小明注册一个APP,填入了用户名,密码。这里产生了两个数据(用户名和密码),数据根据一定的格式通过网络传输到服务器。服务器接收到数据后,根据业务进行处理,最后持久化到数据库中。持久化到数据库中,数据库还要做哪些事?

  1. 校验数据的合法性:比如说主键(唯一性),字段(是否匹配,长度是否符合)
  2. 修改内存:用高效的数据结构组织数据,例如B+数,红黑树
  3. 写入存储介质:以寿命 & 性能友好的方式写入硬件

数据大多以json形式传输

{
    "username":"xiaoming",
    "password":"123456"
}

2. 存储系统介绍

2.1 存储系统的定义

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

这里强调的是软件,并不仅仅说的是用户和存储设备打交道,需要和一个整体的软件打交道。

2.2 存储系统的特点

  1. 作为后端软件的底座,性能敏感;
  2. 存储系统代码,“ 简单 ”(I/O操作要简单,性能要保证)又“ 复杂 ”(异常处理要考虑周全);
  3. 存储系统软件架构,容易受硬件影响。

2.3 从应用层到存储介质

1 buffer,cache(缓存很重要),因为传入时是内存数据,需要从内存写到硬盘中,速度上没有办法去匹配,所以buffer及cache很重要。也就是之前说的以寿命 & 性能友好的方式写入硬件。

2 拷贝的代价是昂贵的,拷贝会降低性能。

3 软件和硬件之间需要有一个抽象的统一接入层。

2.4 RAID技术

2.4.1 背景
  1. 单块大容量磁盘价格 > 多块小容量磁盘
  2. 单块磁盘写入性能 < 多块磁盘的并发写入性能
  3. 单块磁盘的容错能力有限