这是我参与「第五届青训营」伴学笔记创作活动的第4天
前言
对于数据库存储,之前只停留在MySQL的使用层面,只做过一个烂大街的《学生成绩管理系统》,对于存储的概念也只停留在磁盘和大型服务器层面。
1️⃣朴素定义存储系统
存储系统是一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件
存储系统特点
💠性能敏感
💠容易受到硬件影响
💠存储系统代码,既“简单”又“复杂”,例如Mysql的简单增删改查代码很简单,如何在出现大量读写操作时提升速度很难
2️⃣存储系统中数据写入的特点
💠缓存很重要,贯穿整个存储体系
💠拷贝很昂贵,尽可能要减少
💠设备多样需要有统一的接口(硬件设备种类繁多)
3️⃣RAID技术
特点:高性能, 高性价比, 高可靠性
RAID 0,1 ,0 +1之间的不同如下表:
| RAID 0 | RAID 1 | RAID 0 +1 |
|---|---|---|
| 多块磁盘的简单组合 | 一块磁盘对应一块镜像盘 | 结合了RAID 0 和RAID1 |
| 数据条带化存储,提升带宽 | 真实空间利用率只有50% | 真实空间利用率只有50% |
| 没有格外的容错设计 | 容错能力强 | 容错能力强,写入带宽好 |
4️⃣关系型数据库和非关系型数据库
关系: 即集合,任意元素组成的若干有序偶对,反应了事物之间的关系
关系代数: 对关系进行运算的抽象查询语言 如:交,并,笛卡尔积
关系型数据库和非关系型数据库都是存储系统,但是非关系型数据库不要求严格的结构化
关系型数据库的特点:
💠结构化数据友好
💠支持事务(ACID)
💠支持复杂的查询语言
事务
🔶A(tomicity),事务内的操作要么全做,要么不做
🔶C(onsistency),事务执行前后,数据状态是一致的
🔶l(solation),可以隔离多个并发事务,避免影响
🔶D(urability),事务一旦提交成功,数据保证持久性