本文来自:https://blog.csdn.net/aeolus_pu/article/details/54860849
MySQL源码(https://blog.csdn.net/aeolus_pu/article/category/6694287)
sql/sql_select.cc :包含着一些优化函数和一些数据检索算法的具体实现
ITEM_类
ITEM_类是mysql的每一个子系统都要用到的东西。之所以称之为ITEM_类,是因为从ITEM基类派生出许多子类甚至孙类。这些派生类被用来存储和处理mysql系统里的许多种数据,其中包括:参数、标识符
时间、字段、函数、数值、字符串等。ITEM基类定义在/sql/item.h源代码文件里,实现在/sql/item.cc源代码里。
LEX结构
LEX结构是SQL命令在mysql系统内部的表示形式。SQL命令的各组成部分---字段、表、表达式等全都井井有条地存储在LEX结构里。定义在/sql/lex.h文件里
NET结构
NET结构保存着mysql服务器与客户端进行通信所需要的所有信息。buff成员变量用来存放原始的通信数据包(sql命令就保存在这些数据包里)。两个重要函数
my_net_write()函数,把数据包从NET结构写到网络协议
my_net_read()函数,把数据包从网络协议读入NET结构
从/include/mysql_com.h文件里找到全套网络通信函数
THD类
这个类的定义在/sql/sql_class.h源文件里,实现在/sql/sql_class.cc源代码里。是一个重要的类,线程类是线程执行成功的最大关键,在mysql服务器里,几乎每一个子系统或函数都要用到THD类。