牛骨文教育服务平台(让学习变的简单)
博文笔记

mysql 源码阅读入口

创建时间:2017-02-04 投稿人: 浏览次数:1124

 mysql源码太多,初次看到不免让人没有头绪,如果根据特定需求,分模块的去阅读分析,查找特定功能如何实现之类的需求,可以从有限的几个入口看起,有两个主要入口:服务器启动,客户端请求处理。市面上的书大部分都是通过客户端请求处理来讲起如何阅读mysql源码,举的例子通过select 查询,如《深入理解mysql核心技术》以及《深入理解mysql》两本书。

  1 服务器初始化启动过程,包含参数以及参数文件的处理,服务器线程初始化等等,都是从sql目录下的mysqld.cc里面的mysqld_main函数开始的。

      注释清晰,可以从这里挑选感兴趣的服务器初始化部分跳转到相应代码处学习。


 2 客户端请求处理,mysql是相对比较复杂的,首先要确定好学习哪个部分,是mysql的网络协议还是具体命令行的执行代码。

   网络协议部分,mysql客户端与服务端交互可从sql目录的net_serv.cc看起,里面包含了mysql服务器对网络通信的基本封装。

 mysql命令的具体执行,客户端请求会被mysqld.cc的do_handle_one_connection函数捕获,然后创建线程来处理发送过来的命令,

                                           处理函数是sql_parse.cc里面的do_command函数,do_command函数处理后,调用该文件的dispatch_command函数处理请求。

                                           dispatch_command函数是所有客户端命令处理的集散地,对所有命令的代码实现,都可以通过这里入手。



https://my.oschina.net/llzx373/blog/211681



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。