MariaDB伺服器查詢執行過程的三個階段概述
MariaDB伺服器中,查詢的執行過程大致分為如下3個階段:
(1).從使用者接收SQL語句,切分語句並分析詞法語法,最後生成MariaDB伺服器可以理解的解析樹;
(2).確認SQL語句的解析資訊,選擇從哪個資料表讀取,以及使用哪種索引讀取資料表;
(3).藉助第2步中確定的讀表順序或所選索引,從儲存引擎中獲取資料。
第一個階段通常稱為SQL解析,由MariaDB伺服器的SQL解析器負責處理。若SQL語句存在語法錯誤,則可以在該階段得到檢測。經過SQL解析後,最終形成SQL解析樹。MariaDB伺服器使用SQL解析樹而非SQL語句本身執行查詢。
第二個階段會依據第一個階段形成的SQL解析樹處理如下內容:
(1).刪除不必要的條件,將複合運算簡單化。
(2).若存在多表連線,則確定讀表順序。
(3).根據用於各資料表的條件與索引統計資訊,確定要使用的索引。
(4).將獲取的記錄放入臨時表,確定是否需要再次加工。
第三個階段將依據執行計劃向存戶引擎請求讀取記錄,MariaDB引擎會對從儲存引擎獲得的記錄進行連線、排序等處理。
(1).從使用者接收SQL語句,切分語句並分析詞法語法,最後生成MariaDB伺服器可以理解的解析樹;
(2).確認SQL語句的解析資訊,選擇從哪個資料表讀取,以及使用哪種索引讀取資料表;
(3).藉助第2步中確定的讀表順序或所選索引,從儲存引擎中獲取資料。
第一個階段通常稱為SQL解析,由MariaDB伺服器的SQL解析器負責處理。若SQL語句存在語法錯誤,則可以在該階段得到檢測。經過SQL解析後,最終形成SQL解析樹。MariaDB伺服器使用SQL解析樹而非SQL語句本身執行查詢。
第二個階段會依據第一個階段形成的SQL解析樹處理如下內容:
(1).刪除不必要的條件,將複合運算簡單化。
(2).若存在多表連線,則確定讀表順序。
(3).根據用於各資料表的條件與索引統計資訊,確定要使用的索引。
(4).將獲取的記錄放入臨時表,確定是否需要再次加工。
第三個階段將依據執行計劃向存戶引擎請求讀取記錄,MariaDB引擎會對從儲存引擎獲得的記錄進行連線、排序等處理。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2135451/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS引擎執行緒的執行過程的三個階段JS執行緒
- MySQL SQL語句查詢執行過程的四個階段介紹MySql
- javascript引擎執行的過程的理解--執行階段JavaScript
- MySQL學習 - 查詢的執行過程MySql
- 如何查詢一個儲存過程是否在執行儲存過程
- Mycat分散式事務兩階段提交過程概述分散式
- MySQL 查詢語句執行過程淺析MySql
- GaussDB SQL查詢語句執行過程解析SQL
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- 如何在Linux中執行MySQL/MariaDB查詢LinuxMySql
- javascript引擎執行的過程的理解--語法分析和預編譯階段JavaScript語法分析編譯
- MySQL系列之一條SQL查詢語句的執行過程MySql
- 小覷資料庫(SqlServer)查詢語句執行過程資料庫SQLServer
- PostgreSQL並行查詢概述SQL並行
- 分享一個查詢某個使用者過去一段時間內執行的SQL語句。SQL
- 從Spring的幾個階段理解其工作過程Spring
- 查詢SQLSERVER執行過的SQL記錄SQLServer
- 處理查詢的幾個階段
- 查詢Oracle正在執行和執行過的SQL語句OracleSQL
- 透過alert日誌看Oracle Startup的三個階段Oracle
- mysql中一條查詢語句的執行全過程是怎樣的?MySql
- 儲存過程結果進行查詢 select 存過過程儲存過程
- 一個使用者執行另外一個使用者的過程查詢的是哪個使用者下的物件物件
- sql查詢過程表述SQL
- 大資料的系統學習:大資料學習的三個階段概述大資料
- 通過儲存過程執行通過DBLINK的查詢語句失敗-單個語句成功--ORA-00604儲存過程
- 初學Java,這三個階段你經歷過嗎?Java
- 透過查詢檢視sql執行計劃SQL
- MyBatis執行流程的各階段介紹MyBatis
- MySQL兩階段提交過程原理簡述MySql
- 通過spid,查詢執行慢的sql指令碼SQL指令碼
- 資料庫open時檢查點執行的過程資料庫
- 查詢某個會話正在執行的事務會話
- 查詢某個儲存過程有哪些內容儲存過程
- 客服系統的三個發展階段
- 比特幣的三個經濟階段比特幣
- 一條select的查詢的過程
- 程式模擬tomcat伺服器執行過程Tomcat伺服器