Mysql執行流程

2021-10-10 06:45:21 字數 620 閱讀 1653

啟動1.1 客戶端通過命令啟動mysql

1.2 呼叫初始化模組,對系統環境變數、快取、儲存引擎進行初始化

連線2.1 通過網路互動,使用者傳送一條sql會傳遞到連線管理模組,然後**到連線進/執行緒模組

2.2 通過使用者模組校驗使用者是否有訪問資料庫許可權

2.3 檢驗通過後到執行緒連線池檢視是否有空閒連線,沒有則建立乙個新的連線線程,然

處理3.1 mysql會把sql語句拆分稱各個命令,通過命令分發器,判斷是select且開啟了查詢快取,是則查詢匹配對應sql語句的快取且判斷使用者是否有訪問資料條件

3.2 記錄操作日誌

3.3 往下執行進入 『命令解析器』,經過詞法分析,語法分析後生成解析樹

3.4 根據操作轉到對應的模組處理(預處理階段),根據sql選擇執行的模組

3.5 模組接收到請求後,通過訪問控制模組判斷是否有訪問資料許可權

3.6 有許可權』表管理模組』先檢視table cache中是否存在,有則直接對應的表和獲取鎖,負責重新開啟表檔案

3.7 根據表儲存引擎交給對應的儲存引擎處理

3.8 返回資料

MySQL執行流程

最近也在面試,被問到了資料庫優化的一些問題 廢話不多說開始吧 了解mysql優化,那麼我們就先從mysql的執行流程開始說吧 客戶端訪問資料庫 查詢快取 有之則直接返回 解析 語法解析,生成解析樹,處理器,生成新解析樹 查詢優化器 執行計畫 查詢執行引擎 返回結果 下面我們開始講一下每乙個步驟吧 1...

Mysql執行流程

檢視快取情況 show status like qcache 可檢視快取情況 查詢快取 不會快取的情況 1 當查詢語句中有一些不確定的資料時,則不會被快取。如包含函式now current date 等類似的函式,或者使用者自定義的函式,儲存函式,使用者變數等都不會被快取 2 當查詢的結果大於que...

mysql執行流程

mysql主要分為server層和儲存引擎層 server層 主要包括聯結器 查詢快取 分析器 優化器 執行器等,所有跨儲存引擎的功能都在這一層實現,比如儲存過程 觸發器 檢視,函式等,還有乙個通用的日誌模組 binglog日誌模組。儲存引擎 主要負責資料的儲存和讀取,採用可以替換的外掛程式式架構,...