msql語句執行過程

mysqld的三層結構:
  SQL類型:
    DDL:數據庫對象定義語言
        對庫和表的定義
    DML:操作語言
    DCL:控制語言
 結構化的查詢語言:select * from user;
  執行該語句時:
  1、連接層:
      驗證 該用戶的用戶名、密碼、端口號,並提供連接
    連接層作用: 1。提供連接協議(TCP/IP socket)
           2. 驗證功能身份信息
           3、提供一個專門的連接線程(接受用戶發來的SQL語句,並在執行完成之後返回最終結果,但不能讀和執行sql語句,會將SQL語句丟給下一層)
  2、SQL層 (與優化相關) 
        1、接收上層發來的SQL
        2、語法檢查模塊進行語法檢查
        3、語義檢查模塊檢查語義,分辨SQL語句的類型,將不同種類的語句,交給不同的解析器
        4、解析器接收到SQL語句,進行解析操作,得到語句的執行計劃(explain)
        5、優化器負責基於 “開銷” 找到執行開銷最小的執行計劃 (優化SQL,讓優化器選擇最有的執行方式,瞭解優化器的規則) 
        6、執行器基於優化器的選擇,執行SQL語句,並得到獲取數據的方法,交由下一層繼續處理
        7、接收存儲引擎層取到的二進制數據,結構化成表
        8、查詢緩存:SQL語句的 哈希值+數據結果(在修改類業務操作很多的情況下,並不適用)—》redis Tair(memcached)
  3、存儲引擎層
        1、根據上層獲取數據的方法,將數據提取出來
        2、重新再交給SQL層
        是MYSQL數據庫的核心,關係到數據庫性能,運維相關
————————————————
版權聲明:本文爲CSDN博主「道友請多指教」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013411246/article/details/81055731

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章