IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:SQL执行

共 1 篇相关文章

IT 累计浏览 4,042

MySQL源代码的海洋中游弋 初探MySQL之SQL执行过程

这篇讲的是搜狐DBA团队技术沙龙分享中,如何从MySQL源码层面探查一条SQL语句的真实执行轨迹。 文章以几个典型查询(如GROUP BY、两表JOIN)为例,深入其底层逻辑:当执行`GROUP BY`且未命中索引时,MySQL会如何通过临时表的写入、重复键检测与最终排序来完成操作;而一旦GROUP BY的列上存在有序索引,执行流程又如何被优化,跳过临时表和filesort。作者还进一步剖析了Nested Loop Join(嵌套循环连接)的算法图示,以及派生表、依赖子查询等复杂结构的内部处理。 最巧妙的部分在于,文章通过跟踪源码中临时表创建、join buffer使用等“痕迹”,将EXPLAIN输出里诸如“Using temporary”或“Using join buffer”这样的抽象结论,还原成了具体的数据流转步骤。这正呼应了其核心观点:阅读手册概念易有“空中楼阁”之感,而深入源码才能获得“脚踏实地”的理解,最终目标是看懂并利用好EXPLAIN的每一次输出。