数据库知识整理
关系模型
70 年代提出关系模型,定义了实体,关系。对应到数据库里就是行和表,我们用关系来表示数据库。
select 就是取交集,where 本质上就是映射。所有数据库的操作本质上就是关系代数的操作,都是
数学上关系推导的操作,也可以理解为公式翻译。
数据库的架构
client
server 层
连接器
管理连接、权限验证
分析器
词法分析、语法分析
优化器
执行计划生成,索引选择
执行器
操作引擎,返回结果
存储引擎层
存储数据,提供读写接口
查询的流程
然后就是更新的流程,这里要讲一下 redolog,undolog,两阶段提交
redolog 用来做崩溃恢复
两阶段提交主要是为了 binlog 和 redolog 的一致性
Undo 日志:undo log 是 mysql 中两种比较重要的事务日志,另外一种是 redo log,undo log 顾名思义,是一种用于撤销回退的日志,用于事务没提交之前,会先记录存放到 Undo 日志文件里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志回退事务。
mvcc
只能查找创建时间小于等于当前事务 ID 的数据和删除时间大于当前事务 ID 的行(或未删除)
sql 优化
独立的列
联合索引
评论