博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

2024年2月6日

摘要: MySQL存储引擎-InnoDB数据页 MySQL一个数据页默认16kb,MySQL为了不同目的涉及了很多类型的数据页,如undo页、Change Buffer页等等。我们这里只关心存放数据的页,即索引(INDEX)页。一个数据页的存储空间大致被划分为7部分,分别为: 1、FIle Header 文 阅读全文

posted @ 2024-02-06 16:59 面具下的戏命师 阅读(9) 评论(0) 推荐(0) 编辑

2024年2月5日

摘要: MySQL存储引擎-InnoDB行格式 mysql作为一款主流的关系型数据库,是以记录为单位向表中插入数据的。目前为止,Innodb共支持COMPACT、 REDUNDANT、 DYNAMIC、和COMMPRESSED四种行格式。在MySQL5.7及以上版本,默认采用DYNAMIC格式。DYNAMI 阅读全文

posted @ 2024-02-05 19:40 面具下的戏命师 阅读(40) 评论(0) 推荐(0) 编辑

2022年12月2日

摘要: Mysql 源码解读-执行器 一条 sql 执行过程中,首先进行词法分析和语法分析,然后将由优化器进行判断,如何执行更有效率,生成执行计划,后面的任务就交给了执行器。在执行的过程中,执行器就会和存储引擎交互了,交互是以记录为单位的。本文我们介绍下 MySQL8的执行器。 在前几篇文章中,我们讲述了 阅读全文

posted @ 2022-12-02 12:40 面具下的戏命师 阅读(1197) 评论(0) 推荐(0) 编辑

2022年12月1日

摘要: Mysql 源码解读-优化器 一条 sql 执行过程中,首先进行词法分析和语法分析,然后将由优化器进行判断,如何执行更有效率,生成执行计划。在前几篇文章中,我们已经介绍了 AST 语法树是如何生成的,接下来我们探索一下 MySQL 的优化器,查询优化器是专门负责优化查询语句的优化器模块,通过计算分析 阅读全文

posted @ 2022-12-01 16:07 面具下的戏命师 阅读(820) 评论(0) 推荐(0) 编辑

2022年11月19日

摘要: MySQL 源码解读之-语法解析(四) 在上篇文章中,我们分析了一条 sql 语句 select * from bank; 警告bison 语法解析器(MYSQLparser 函数)生成的AST 树的结构,如下图所示: mysql 需要对这个AST 做进一步的处理,调用 LEX::make_sql_ 阅读全文

posted @ 2022-11-19 13:25 面具下的戏命师 阅读(703) 评论(0) 推荐(0) 编辑

2022年11月15日

摘要: MySQL 源码解读之-语法解析(三) 在前两篇文章中已经讲述了 bison 如何解析 sql 语句并生成 AST 树。那么 MySQL是如何和 bison 的程序关联起来的呢,并通过gdb 调试一下。在MySQL 源码解读之-语法解析(二)中我们用到了许多词法解析和语法解析的术语概念,例如 DFA 阅读全文

posted @ 2022-11-15 19:01 面具下的戏命师 阅读(746) 评论(0) 推荐(0) 编辑

2022年11月13日

摘要: MySQL 源码解读之-语法解析(二) 承接上一篇博客中提到了语法解析中涉及的数据结构。我们继续分析MySQL 在做语法分析的执行过程。MySQL的语法分析器是用bison工具生成的,bison是一个语法分析器生成工具。bison的规则文件是sql/sql_yacc.yy,经过编译后会生成sql/s 阅读全文

posted @ 2022-11-13 16:34 面具下的戏命师 阅读(1068) 评论(0) 推荐(0) 编辑

摘要: MySQL 源码解读之-语法解析(一) 语法分析是编译过程的一个逻辑截断。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.语法分析程序可以用YACC(BISON)等工具自动 阅读全文

posted @ 2022-11-13 15:54 面具下的戏命师 阅读(1571) 评论(0) 推荐(0) 编辑

2022年10月24日

摘要: python -c 执行单行命令或脚本 背景: 最近在编写 shell 脚本实现数据库的自动巡检功能,在某些巡检项需要处理 json 类型的数据。使用不擅长处理字符串的 shell来处理 json, 各种awk sed grep 搞下来差点脑溢血。最后还是解析不了复杂的 json。一通查资料,搞到如 阅读全文

posted @ 2022-10-24 21:48 面具下的戏命师 阅读(472) 评论(0) 推荐(0) 编辑

2022年10月21日

摘要: MySQL 源码解读之-词法分析 词法分析(lexical analysis)是计算机科学中将字符序列转换为单词(Token)序列的过程。进行词法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法 阅读全文

posted @ 2022-10-21 21:32 面具下的戏命师 阅读(913) 评论(0) 推荐(0) 编辑