首页
MySQL
生活
友链
关于
  • MySQL 写入记录到连接缓冲区代码分析

    2022-02-17 · 预计阅读 6 分钟 · 5.7.35 源码 Join

    JOIN_CACHE::write_record_data() 是往连接缓冲区中写入记录的方法,BNL、BKA、BKA_UNIQUE 都是调用这个方法往连接缓冲区写入数据,本文基于 MySQL 5.7.35 版本的源码对该方法进行详细的分析


    阅读更多
  • MySQL Inner Join 执行流程分析

    2022-02-16 · 预计阅读 12 分钟 · 5.7.35 源码 Join

    本文基于 MySQL 5.7.35 在代码层面对内连接的 SQL 语句进行框架性分析,主要是介绍在连接执行过程中,涉及到哪些比较关键的环节,在这些环节干了什么事情,不会涉及到很细节的代码逻辑层面,不然整篇文章就会非常长了


    阅读更多
  • MySQL 数据在连接缓冲区是怎么存储的?

    2022-02-15 · 预计阅读 3 分钟 · Join

    MySQL 连接缓冲区(Join Buffer)是用于提升多表连接查询的速度的,连接查询的执行简化逻辑如下:

    • 从存储引擎中读取驱动表的中的记录,把满足条件的记录存入连接缓冲区
    • 当连接缓冲区满时,循环从存储引擎读取被驱动表的记录
    • 每读取一条被驱动表的记录,遍历临时存放到连接缓冲区中的驱动表的记录
    • 判断被驱动表和驱动表的记录是否匹配,如果匹配,且被驱动表是连接操作的最后一个表,则把匹配的记录发送给客户端(只发送客户端需要的字段)

    阅读更多
  • BNL 缓冲区初始化代码分析

    2022-02-11 · 预计阅读 5 分钟 · 源码 5.7.35 Join

    BNL 是 Block Nested Loop 的缩写,表示 基于块的嵌套循环连接,是 MySQL 优化连接查询的一种方式

    BNL 缓冲区的初始化,是执行连接过程中使用连接缓冲区的基础,本文会详细分析 JOIN_CACHE_BNL::init() 方法及其调用的其它用于初始化的相关方法


    阅读更多
  • MySQL 外连接相关属性设置代码分析

    2022-02-09 · 预计阅读 3 分钟 · 源码 5.7.35 Join

    本文基于 MySQL 5.7.35 版本的源代码,主要是对 JOIN::make_outerjoin_info() 方法的代码逻辑进行分析


    阅读更多

Csch


MySQL 源码研究公众号:一树一溪

最新文章

  • 修改 lower_case_table_names 导致 frm 文件删除失败
  • MySQL 相关子查询
  • MySQL 全表扫描成本计算
  • MySQL 不相关子查询怎么执行?
  • where field in(...) 是怎么执行的?
  • MySQL 连接怎么保活?
  • MySQL 数据字典表
  • MySQL 崩溃恢复

分类

MYSQL 44 生活 4

标签

源码 32 MYSQL 29 5.7.35 22 8.0.29 12 INNODB 5 JOIN 5 随笔 4 子查询 2 工具 2 查询优化 2 FRM 1 UNDO日志 1 索引 1 表结构 1

Copyright  . All Rights Reserved