认识存储的本质 | 青训营笔记

86 阅读2分钟

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

存储&数据库简介

存储系统概述

存储系统特点
  • 数据结构化
  • 数据的共享性高,冗余度低,易扩充
  • 数据独立性高
  • 数据由DBMS统一管理和控制
存储器层次结构
  • L0:寄存器
  • L1:高速缓存(SRAM)
  • L2:高速缓存(SRAM)
  • L3:高速缓存(SRAM)
  • L4:主存(DRAM)
  • L5: 本地二级存储(本地磁盘)
  • L6: 远程二级存储(分布式文件系统、Web服务器)
单机存储栈
  • VFS:对用户屏蔽各种文件系统的不同实现,对上层提供统一的接口
  • 单机文件系统(ext4/xfs等):向下管理块设备,向上对接vfs 非direct io:写到page cache,之后由内核定期write back
  • direct io:将用户io提交到通用块层
  • page cache:文件系统高速缓存,用于加速读写过程,Page cache由内存中的物理page组成,其内容对应磁盘上的block。
  • block layer:处理所有对块设备的请求,核心struct bio,主要是io scheduler和block mq两大模块

数据库系统概览

关系型数据库特点
  • 一旦数据表中存储数据后,修改表结构变得特别困难。
  • 如果我们想扩展字段时,会对表结构产生影响。
  • 即使某一行中的某个字段没有赋值,也要使用null填充
  • 一旦涉及到多张表,因为数据表存在着复杂的关系,管理非常不方便。
  • 一旦面对海量数据的处理时,读写性能特别差,尤其在高并发这一块。
非关系型数据库特点
  • 扩展数据之间无关系,这样就非常容易扩展。
  • 大数据量,高性能:SQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。
  • 灵活的数据模型:NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
数据库vs经典存储

相较于经典存储,数据库有以下优点

  • 数据共享
  • 减少数据的冗余度
  • 数据的独立性
  • 数据实现集中控制
  • 数据一致性和可维护性