
DBMS
文章平均质量分 78
InAHurryv
或取诸怀抱悟言一室之内
展开
-
一条SQL 语句的执行
查询一条sql语句 比如select * from tableA where ID = 10(假设没有索引),执行的时候 首先判断是否有权限,有的话就开始对表操作:1、调用执行引擎接口“获取表第一行”,判断该行是否ID = 10.如果是 加入结果集2、调用执行引擎接口“获取表下一行”,判断改行是否ID= 10,如果是 加入结果集3、如果执行最后时,将结果集返回。更新redolog更新时把记录从磁盘中找到,然后修改后刷入磁盘。整个过程非常耗时,所以InnoDB 设计了 redolog 操作原创 2021-07-24 21:30:28 · 273 阅读 · 0 评论 -
redo log和bin log 以及MySQL InnoDB内部的XA
知识回顾1、什么是redo log ?MySQL 可以分为 连接层、SQL 层、存储层。当sql执行的时候,对数据的修改如果每次都是刷到磁盘上,那么必然会造成大量的随机io,影响效率。所以可以使用redo log 来解决这个问题,即MySQL 对数据的修改只体现在buffer pool 的内存中,然后会在redo log 中记录修改。redo log 还保证了数据的持久性,即修改 的数据一定会最终持久化到磁盘上。redo log 本质上就是固定大小的文件,记录了一些事务的修改操作。注意InnoDB原创 2021-07-24 21:25:39 · 182 阅读 · 0 评论 -
DBMS自带的查询优化
在DBA或者用户执行SQL时候,首先会经过编译器编译,而编译的过程就就行了物理优化和逻辑优化,最终形成执行计划。知识-关系代数逻辑优化的基础是关系代数,关系代数的操作有 1、基本操作 并、差、笛卡尔积、选择、投影、连接。2、扩展操作 交、 θ连接(等值连接 、自然连接)3、扩展复杂操作 除 左外连接 右外连接 全外连接除操作适合描述这样的语义:sc(学生选课表) s# c# score Course(课程表) c# cname ccredit 求选修了全部课程的学生学原创 2021-07-24 13:20:26 · 579 阅读 · 0 评论