后端:存储与数据库 | 青训营学习笔记(一)

54 阅读2分钟

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

前言

对于数据库存储,之前只停留在MySQL的使用层面,只做过一个烂大街的《学生成绩管理系统》,对于存储的概念也只停留在磁盘和大型服务器层面。

1️⃣朴素定义存储系统

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

存储系统特点

💠性能敏感
💠容易受到硬件影响
💠存储系统代码,既“简单”又“复杂”,例如Mysql的简单增删改查代码很简单,如何在出现大量读写操作时提升速度很难

2️⃣存储系统中数据写入的特点

💠缓存很重要,贯穿整个存储体系
💠拷贝很昂贵,尽可能要减少
💠设备多样需要有统一的接口(硬件设备种类繁多)

3️⃣RAID技术

特点:高性能高性价比高可靠性
RAID 0,1 ,0 +1之间的不同如下表:

RAID 0RAID 1RAID 0 +1
多块磁盘的简单组合一块磁盘对应一块镜像盘结合了RAID 0 和RAID1
数据条带化存储,提升带宽真实空间利用率只有50%真实空间利用率只有50%
没有格外的容错设计容错能力强容错能力强,写入带宽好

4️⃣关系型数据库和非关系型数据库

关系: 即集合,任意元素组成的若干有序偶对,反应了事物之间的关系
关系代数: 对关系进行运算的抽象查询语言 如:交,并,笛卡尔积

关系型数据库和非关系型数据库都是存储系统,但是非关系型数据库不要求严格的结构化

关系型数据库的特点:

💠结构化数据友好
💠支持事务(ACID)
💠支持复杂的查询语言

事务

🔶A(tomicity),事务内的操作要么全做,要么不做
🔶C(onsistency),事务执行前后,数据状态是一致的
🔶l(solation),可以隔离多个并发事务,避免影响
🔶D(urability),事务一旦提交成功,数据保证持久性