这是我参与「第五届青训营」伴学笔记创作活动的第10天
本文基于字节内部课+上网自学的内容。
1.经典案例——一条数据的持久化生命从何而来
数据产生——数据流动——数据持久化
产生:用户注册,数据从无到有的产生,并且向后端服务器飞去。
数据的流动:从用户的设备(手机、电脑、其它终端...),到后端服务器,再到数据库(后面可能有其它系统的支持等)。
数据的持久化:校验数据的合法性(eg:小明这个用户是否已存在呢?),修改内存(用高效的数据结构把数据组织起来),写入储存介质(按寿命和性能友好的方式,硬盘、磁带...)
2.数据库和存储系统背景知识
何为存储系统?
提供读写、控制类接口,并且能够安全有效地将数据持久化的软件。
存储系统具有的特点
性能敏感(作为后端软件的最后一道门,作为后端软件的底座,必须做到超高性能)
代码既简单又复杂(简单指的是受限于性能敏感的要求,功能部分的代码绝对不能复杂;而复杂则是异常处理的分支部分,要充分考虑到各种异常的情况)
易受硬件影响(软件的架构,要随着硬件的变化而变化,原因是存储系统下一层就是硬件,两者关系十分紧密。甚至会针对新兴的硬件,不惜推倒重来。)
数据库
数据库!=存储系统
关系型数据库(是存储系统,但是在存储之外还有其它能力:结构化数据友好、支持事务、支持复杂查询语言。)
非关系型数据库(也是存储系统,但不要求结构化,对半结构化的数据友好、可能支持事务、可能支持复杂查询语言)
数据库VS经典储存(1.结构化数据管理。关系型数据库:以表形式管理;在文件中,则是自行管理结构,这是一个很痛苦的过程 2.事务能力,数据库支持事务,具有ACID四个特性 3.数据库支持复杂查询条件)