带你认识存储 & 数据库 | 青训营笔记

118 阅读3分钟

带你认识存储 & 数据库 | 青训营笔记

存储 & 数据库简介

存储系统是指用于存储数据和文件的计算机系统,它可以提供数据的备份、恢复、共享和访问等功能。存储系统通常包括硬件和软件两个方面,其中硬件包括磁盘阵列、存储器、磁盘控制器、网络设备等,而软件包括操作系统、数据备份软件、数据恢复软件、数据存储管理软件等。

数据库是指一种组织和管理数据的系统,它允许用户创建、访问和维护数据。数据库通常包括数据表、字段、索引、存储过程和触发器等元素,其中数据表是数据库的核心元素,它包含了各种数据记录。

主流存储产品剖析

单机存储

单机存储是单个计算机节点上的存储软件系统,一般不涉及网络交互分布式存储。

image.png

Linux经典哲学:一切皆文件

  • 文件系统的管理单元:文件
  • 文件系统接口:文件系统繁多,如Ext2/3/4,sysfs,rootfs等,但都遵循VFS的统一抽象接口
  • Linux文件系统的两大数据结构:Index Node & Directory Entry

image.png key-value存储

  • 常见使用方式:put(k,v)&get(k)
  • 常见数据结构:LSM-Tree,某种程度上栖牲读性能,追求写入性能
  • 拳头产品:RocksDB

image.png

分布式数据库

HDFS

  • HDFS堪称大数据时代的基石
  • 时代背景:专用的高级硬件很贵,同时数据存量很大,要求超高吞吐

image.png

Ceph

Ceph:开源分布式存储系统里的万金油

image.png

单机关系型数据库

关系型数据库是一种用来存储结构化数据的数据库系统。它使用表格来存储数据,每个表格包含行和列,每行中的数据以列的形式存储。关系型数据库的核心概念是关系,关系是由行和列组成的,每对行之间的关系称为一个关系。

image.png

单机非关系型数据库

相比于关系型数据库,非关系型数据库更加灵活和开放,允许对数据进行更为简洁和自由的存储和访问。非关系型数据库通常用于存储非结构化数据,如文档型数据、键值存储、图型数据和分布式数据等。

  • 关系型数据库一般直接使用SQL交互,而非关系型数据库交互方式各不相同
  • 非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活
  • 不管是否关系型数据库,大家都在尝试支持SQL(子集)和“事务”

image.png

新技术演进

目前主要的探索方向:软件架构变更、AI增强、新硬件革命

image.png

个人思考

绝大部分的计算机软件,都离不开数据存储,也就是离不开数据库,数据库可以说是重中之重。我现在正在学习MySQL,对MySQL的索引、MVCC等内容有了一定的了解,不得不说,数据库真的是一个非常复杂的软件系统。同时我们作为程序员,不能只做到会用,而是要做到知道一定的原理,这样可以让我们编写的SQL语句达到尽可能好的性能。