视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQLInternal笔记
2020-11-09 11:13:32 责编:小采
文档

主要模块的交互(介绍mysql各个模块主要职责),当Connection Manager收到client连接的时候,则会初始化网络连接进程,然后建立C

主要模块的交互(介绍mysql各个模块主要职责)

当Connection Manager收到client连接的时候,则会初始化网络连接进程,然后建立Connetion handler进程。进而connection handler进程进行权限认证。

传过来的sql脚本将会被Command Dispatcher接收,如果是个复杂的指令,将会传到其他的模块去。

在Mysql的术语中,client有两种请求,一种是query,另外一种是command,query不仅包括select,还包括delete、insert等,这些语句是需要经过parser处理的,而command则不需要经过parser处理。

如果开启了query logging,那么command dispatcher 将会让logging module来做日志。

command dispatcher在使用parser之前,首先会调用query cache,query cache首先检查该query是不是可以被cache,是否有符合该query的数据已经被cache,如果有的话,就返回,如果miss了,就会执行parser。

执行好parser之后,,select由optimizer来处理;update、 inserts、 deletes和table创建语句,schema创建语句 schema alter语句由table modification module来处理;其他还有table maintenance module,replication module等等。

然后通过维护着table list的access control module,进入到Table manager,打开表并获取相应的锁,然后调用相应的引擎,实现query语句。

abstracted storage engine module自动将query转化为对应引擎的方法进行处理。

在query语句执行的时候,corresponding module会把一些结果集返回到client。

Mysql没有使用exceptions,因此在任何一层都需要使用错误检测语句。

当一个任务完成后,就会返回到connection module去等待新的任务。

slave也可能会读取二进制更新文件,这将会由master节点来负责。

如果一台机器被定义为slave,那么将会启动两个线程,一个是sql thread,另外一个是i/o线程。

网络连接将会通过Client/server protocol module来实现。而mysql的核心功能都由Core api来实现。

下载本文
显示全文
专题