mysql 原始碼閱讀入口

2021-07-26 13:24:56 字數 687 閱讀 4592

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函式是所有客戶端命令處理的集散地,對所有命令的**實現,都可以通過這裡入手。

tomcat原始碼閱讀 一 入口

程式啟動入口 org.apache.catalina.startup.bootstrap的main方法,其最終會呼叫到org.apache.catalina.startup.catalina的load 和start 方法。bootstrap中的關鍵 public static void main s...

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...

原始碼閱讀 Glide原始碼閱讀之with方法(一)

前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...