聚合函数(Aggregate Function)是数据分析和数据库查询中不可或缺的计算工具。本文将从源码层面分析 MySQL 实现的聚合函数,主要涉及无 GROUP BY 和带 GROUP BY 的聚合过程。实现的主要代码在 item_sum.h 和 item_sum.cc 文件中。在 MySQL 中,聚合函数的基类是 Item_sum。下面,我们将具体分析 COU...
编译MySQL源码,并生成适用于ARM64架构的rpm文件。编译完成后,rpm文件通常会被存放在类似/root/rpmbuild/RPMS/aarch64的目录中。编写Dockerfile:创建一个新的Dockerfile,用于构建MySQL 5.7.40的Docker镜像。在Dockerfile中,需要指定基础镜像、复制rpm文件到镜像中、安装rpm文件、配置MySQL等步骤。注意调...
所有子查询在MySQL中以Item_subselect为基类,包含相关或非相关的类型,且具有特定的标记来描述其性质。子查询的执行方式在Subquery_strategy枚举中被明确,共有五种最终执行方式。处理流程分为prepare、optimize和execute三个阶段。在prepare阶段,子查询通过抽象语法树进行初步构建,主要完成将子查询转换为衍生...
mysqld_safe是MySQL安装包中自带的bash脚本,主要功能是启动并监控mysqld进程。源码位于scripts/mysqld_safe.sh。在Linux部署中,推荐使用mysqld_safe来启动MySQL数据库。通过命令执行mysqld_safe,系统将启动一个mysqld_safe进程和一个mysqld进程,mysqld_safe负责配置参数,如my.cnf路径、basedir、错误日...
在 Windows 下搭建 MySQL 源码学习环境,实现调试功能,我们需遵循以下步骤。首先,需安装最新版本的 Visual Studio Code(VSCode)用于调试环境。紧接着,配置 VMware,在其中部署 CentOS7。在 CentOS7 上部署 VSCode,确保其具备调试 MySQL Debug 版本的能力。在 CentOS7 环境中,我们使用 epel-release ...