GO之测试 | 青训营笔记

65 阅读3分钟

今天是第7篇打卡学习,学习一下后端入门 - 存储与数据库,以下是知识点总结:

①一条数据从产生,到数据流动,最后持久化的全生命周期

一条用户注册数据-》后端服务器-》数据库系统(数据在这里被持久化)

②数据的持久化

首先校验数据的合法性、然后在内存中用高效的数据结构组织数据、最后将数据以寿命&性能友好的方式写入存储介质

老师抛出了五个问题:

1.数据库怎么保证数据不丢?

2.数据库怎么处理多人同时修改的问题?

3.为什么用数据库,除了数据库还能存到别的存储系统吗?

4.数据库只能处理结构化数据吗?

5.有哪些操作数据库的方式,要用什么编程语言?

③什么是存储系统?

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

存储系统特点:性能敏感、容易受到硬件影响、代码既“简单”又“复杂”

存储器层级结构

数据怎么从应用到存储介质呢?

「缓存」很重要,贯穿整个存储体系。缓存用于存储计算机系统中经常访问的数据和指令,以提高系统的性能和响应速度。当CPU需要访问数据或指令时,它首先检查缓存中是否已经存在相应的数据或指令,如果存在,则可以直接从缓存中读取,避免了从主存储器中读取数据或指令的延迟。

「拷贝」很昂贵,应该尽量减少,拷贝越多CPU消耗越狠

硬件设备五花八门,需要有抽象统一的接入层

RAID技术:R(edundant)A(rray)of I(nexpensive)D(isks)

高性能、高性价比、高可靠

RAID 0

·多块磁盘简单组合

·数据条带化存储,提高磁盘带宽

·没有额外的容错设计

RAID 1

一块磁盘对应一块额外镜像盘

真实空间利用率仅50%

容错能力强

RAID 0+1

结合了RAID0和RAID1

真实空间利用率仅50

容错能力强,写入带宽好

④数据库和存储系统是不一样的吗?

这要从关系型数据库、和非关系型数据库两方面去回答

关系是什么?

答:关系=集合=任意元素组成的若干有序偶对,反应了事物间的关系。

关系代数三对关系作运算的抽象查询语言:交、并、笛卡尔积…

SQL=一种DSL=方便人类阅读的关系代数表达形式

关系型数据库是存储系统,但是在存储之外,又发展出其他能力。

关系数据库的特点:结构化数据友好;支特事务(ACID】;支持复杂查询语言

非关系型数据库也是存储系统,但是一般不要求严格的结构化。

特点:半结构化数据友好;可能支持事务(ACID];可能支特复杂查询语言。

关于它们之间的比较,可以看这篇文章:zhuanlan.zhihu.com/p/348074129

⑤数据库 和 经典的存储对于结构化数据的管理

2.经典存储中没有 事务 这个概念和能力

凸显出数据库支持「事务」的优越性

事务具有:

A(tomicity),事务内的操作要么全做,要么不做

C(onsistency),事务执行前后,数据状态是一致的

I(solation),可以隔离多个并发事务,避免影响

D(urability),事务一旦提交成功,数据保证持久性

3.复杂查询能力