这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天.
本次课老师讲了关于数据库与数据存储的相关知识,首先从一条经典的数据流向开始,当用户进行信息填写,当点击注册按钮时,该数据就以毫秒级传送至服务器并存储在数据库中。
如上图,当数据传至后端服务器时,该服务器将数据保存至数据库中,但是不代表该数据库就只被后端服务器进行调用,也可能会被其他系统调用,其他系统可能会用于对数据库进行分析等。但是数据不能只写入服务器上,若断电等操作则数据消失,不能每次调用服务器都需要重新注册,所以引入持久化数据,数据库会校验数据的合法性,当数据合法时,数据会修改内存操作,随后以IO流保存在写入的介质中。
其后介绍了存储系统,存储系统则是一个提供了数据接口,将数据安全有效的持久化称为存储系统。
存储系统中缓存很重要,即当前读取的数据先填入缓存,当缓存满后再进行IO调用,因为IO调用会消耗CPU资源,所以一次性尽可能多的写入数据会使得IO设备被更合理的使用。IO设备将数据最终写入磁盘中。
数据库分为关系型数据库和非关系型数据库,其关系型数据库有数据结构化,支持事物,支持查询语句SQl等优点,而非关系型数据库不一定支持。
数据库事务ACID,A为原子性,表示事务发生不可中断,如A转账给B,则A账户扣款与B账户增加金额整个操作为原子性,否则在银行领域无法保障资金的安全性。C表示事务执行的一致性,如A扣款与B增款虽然局部视图进行变化,但是全局金额并没有发生改变。
最后老师提到关系型数据库的优势,并讲解了SQl的基本操作。在计算机中,单个计算机为单机存储,一般存储为index node和文件存储,在linux中一切皆文件,包括系统都可以删除。
最后老师提及单机存储与分布式存储的概念以及优劣之处,更具体的细节需呀使用数据库并将对应的操作熟悉后才能更熟练的理解。