首页
MySQL
生活
友链
关于
  • MySQL 外连接相关属性设置代码分析

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

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


    阅读更多
  • 半连接物化的两种策略

    2022-02-09 · 预计阅读 2 分钟 · 子查询

    IN、=ANY 子查询进行半连接(Semi-Join)优化时,其中一种策略就是子查询物化,即生成一张内存或者磁盘的临时表(称为物化表),来存储子查询的执行结果,然后物化表和主查询进行连接,以获取最终的结果集

    本文翻译自 MariaDB 官方文档,主要介绍使用物化表进行半连接优化的两种策略


    阅读更多
  • MySQL frm 文件详解

    2021-12-09 · 预计阅读 15 分钟 · frm

    本文基于 MySQL 5.7.35 逐字节解读 frm 文件的内容,本来想通过抽象的方式,来说清楚 frm 文件中每个字节的含义,写了一半发现根本行不通,因为除了 frm header block 区域的 Offset 是确定的,其它区域(如索引、字段、注释等)长度不确定,Offset 也是不确定的,很难描述清楚,因此,本文使用一个具体的表来说明 frm 文件中每个字节的含义,表结构如下:


    阅读更多
  • MySQL table->rec_buf_length 字段计算逻辑

    2021-11-28 · 预计阅读 5 分钟 · 5.7.35 源码 表结构

    table->rec_buf_length 表示的是 table->record 的一行记录的长度

    关于 table->record 的说明: table->record 的定义:sql/table.h:1031 uchar *record[2]; /* Pointer to records */

    table->record[0] 用于 MySQL 的 server 层和 引擎层进行数据交互

    存储引擎从内存中读取到 1 条记录时,记录的存储格式还是存储引擎特定的格式

    通过存储引擎的格式转换方法,把存储引擎格式转换为 MySQL 格式,存储到 table->record[0] 中


    阅读更多
  • 使用 mysqlslap 压测

    2021-11-15 · 预计阅读 1 分钟 · 工具

    mysqlslap 是 mysql 自带的压测工具,本文记录使用 mysqlslap 对 SELECT 语句进行压测时使用的各参数及其含义、以及测试结果的简单说明。


    阅读更多
  • 为什么字符串字段和数字比较不能走字段上的索引

    2021-10-30 · 预计阅读 1 分钟 · 索引

    这是一个并不复杂的问题,我们先说结论,再来探寻背后的原理

    字符串字段和数字查询条件进行比较时,会先把字符串转换为数字再比较,而对字段进行了类型转换,是不能使用索引的

    结论很简单,但是这背后的原理是什么呢? 同时引申出来另一个问题:为什么字符串和数字比较时,要把字段转换为数字,而不是把数字转换为字符串比较呢?


    阅读更多
  • InnoDB Undo日志什么时候会被删除?

    2021-08-18 · 预计阅读 1 分钟 · InnoDB Undo日志 源码 5.7.35

    Undo日志在事务执行过程中生成,既服务于自己,也服务于其它事务。 生成Undo日志的事务提交之后,Undo日志服务于自己的使命就结束了。 Undo日志服务的其它所有事务都提交之后,它服务于其它事务的使命就结束了,同时它的整个使命也就结束了。 本文接下来会简单介绍下Undo日志的作用,然后详细聊聊Undo日志的删除的具体时机。


    阅读更多
  • MySQL源码调试环境配置

    2021-08-18 · 预计阅读 1 分钟 · 工具

    使用Jetbrains的CLion编辑器,搭建 MySQL 5.7.35 调试环境


    阅读更多
    • ««
    • «
    • 1
    • 2
    • 3
    • 4
    • 5
    • »
    • »»

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