这是我的第二篇笔记,我参加的是第五届字节后端青训营的笔记活动。本篇将对带你认识储存&数据库进行学习笔记记录。
- 存储系统:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件
- 关系(集合):任意元素组成的若干有序偶对,反应了事物间的关系
- 关系代数:对关系作运算的抽象查询语言
- SQL:方便人类阅读的关系代数表达形式
储存 & 数据库简介
存储系统的特点:
- 性能敏感
- 代码复杂
- 容易受硬件影响
RAID技术(redundant array of inexpensive disks)——由于多块硬盘结合使用成本低,性能好,安全性高,RAID技术产生
- RAID 0:数据条带化存储、提高磁带带宽
- RAID 1:每块磁盘对应一块镜像盘,空间利用率最高50%
- RAID 0 + 1:空间利用率50%,容错能力强、写入带宽好,空间利用率最高50%
关系数据库属于存储系统,具有一下特征:
- 结构化数据友好
- 支持事物(ACID)
- 支持复杂查询语言
非关系数据库也是存储系统,结构化不严格:
- 半结构化数据友好
- 可能支持事物(ACID)
- 可能支持复杂查询语言
ACID(事务),是数据库的一个特性:
- Atomicity:事务内的操作要么全做,要么不做
- Consistency:事务执行前后,数据状态是一致的
- lsolation:可以隔离多个并发事务,避免影响
- Durability:事务一旦提交成功,数据保证持久性
数据库能使用更灵活简洁的代码
主流产品
单机存储
单个计算机节点上的存储软件系统,一般不涉及网络交互
典例:linux,具有 Index Node 和 Directory Entry两大数据结构
分布式存储
实现了分布式协议,涉及大量网络交互。
典例: HDFS、Ceph
单机关系型数据库
单个计算机节点上的数据库系统事务在单机内执行,也可能通过网络交互实现分布式事务
以 Oracle(商业产品)、MySQL(开源)、PostgreSQL(开源)为主
单机非关系型数据库
MongoDB、Redis、Elasticsearch
分布式数据库
解决容量、弹性、成本问题,进行分布式优化
新技术
软件架构变更(Bypass OS kernel)、AI增强、新硬件革命(RDMA网络、Persistent Memory、可编程交换机、CPU、GPU、DPU)
认识与思考
老师讲的很生动,不同的数据库有不同的存在形式和意义,同时新的技术也在不断产生和发展,需要我们学习。