MySQL执行原理
文章平均质量分 96
析道者
To be or not to be,It's a question.
展开
-
2-3-5-3、InnoDB 的 Buffer Pool
InnoDB 的内存结构和磁盘存储结构图总结如下:其中的 Insert/Change Buffer 主要是用于对二级索引的写入优化,Undo 空间则是 undo 日志一般放在系统表空间,但是通过参数配置后,也可以用独立表空间存放,所以用虚线表示。原创 2023-04-05 20:45:50 · 719 阅读 · 0 评论 -
2-3-5-1、InnoDB 记录存储结构和索引页结构
InnoDB 是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启数据还是存在的。而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还需要把内存中的内容刷新到磁盘上InnoDB 采取的方式是:将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB 中页的大小一般为 16 KB。也就是在一般情况下,一次最少从磁盘中读取 16KB 的内容到内存中,一次最少把内存中的 16KB 内容刷新到磁盘中。原创 2023-03-29 09:08:34 · 477 阅读 · 2 评论 -
2-3-4-4、MySQL的查询重写规则
对于一些执行起来十分耗费性能的语句,MySQL 还是依据一些规则,竭尽全力的把这个很糟糕的语句转换成某种可以比较高效执行的形式,这个过程也可以被称作查询重写。原创 2023-03-17 17:06:45 · 762 阅读 · 0 评论 -
2-3-4-3、InnoDB中的统计数据
查询成本的时候经常用到一些统计数据,比如通过 SHOW TABLE STATUS 可以看到关于表的统计数据,通过 SHOW INDEX 可以看到关于索引的统计数据,在此着重了解下统计数据的由来。原创 2023-03-13 13:36:04 · 501 阅读 · 0 评论 -
2-3-4-2、MySQL的查询成本解析
MySQL 执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询,其实在 MySQL 中一条查询语句的执行成本是由I/O成本和CPU成本组成的。原创 2023-03-06 13:33:56 · 1696 阅读 · 0 评论 -
2-3-4-1、索引合并及连接查询
连接的本质就是把各个连接表中的记录都取出来依次匹配的组合加入结果集并返回给用户把 e1 和 e2 两个表连接起来的过程如下图所示:这个过程看起来就是把e1表的记录和e2的记录连起来组成新的更大的记录,所以这个查询过程称之为连接查询。连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组合,像这样的结果集就可以称之为笛卡尔积。因为表 e1 中有 3 条记录,表 e2 中也有 3 条记录,所以这两个表连接之后的笛卡尔积就有 3×3=9 行记录。原创 2023-03-03 10:09:44 · 760 阅读 · 0 评论