写点什么

数据库知识整理

发布于: 2 小时前

关系模型

70 年代提出关系模型,定义了实体,关系。对应到数据库里就是行和表,我们用关系来表示数据库。

select 就是取交集,where 本质上就是映射。所有数据库的操作本质上就是关系代数的操作,都是

数学上关系推导的操作,也可以理解为公式翻译。


数据库的架构

client


server 层

连接器

管理连接、权限验证

分析器

词法分析、语法分析

优化器

执行计划生成,索引选择

执行器

操作引擎,返回结果


存储引擎层

存储数据,提供读写接口


查询的流程


然后就是更新的流程,这里要讲一下 redolog,undolog,两阶段提交

redolog 用来做崩溃恢复



两阶段提交主要是为了 binlog 和 redolog 的一致性


Undo 日志:undo log 是 mysql 中两种比较重要的事务日志,另外一种是 redo log,undo log 顾名思义,是一种用于撤销回退的日志,用于事务没提交之前,会先记录存放到 Undo 日志文件里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志回退事务。


mvcc

只能查找创建时间小于等于当前事务 ID 的数据和删除时间大于当前事务 ID 的行(或未删除)



sql 优化

独立的列

联合索引


用户头像

优秀工程师 2020.06.14 加入

-热爱编程 -热爱生活 -无所畏惧

评论

发布
暂无评论
数据库知识整理