那麼來自客戶端的一條sql語句,在mysql的伺服器內部,究竟是如何實現的呢?我們來深入了解mysql儲存引擎層。
(1)伺服器檢查是否可以在查詢快取中命中:
基於hash查詢,sql語句需要完全相同;查詢快取中的sql語句涉及的表,即使是無關欄位的更新,也會帶來查詢快取中sql的更新,具有一定的資源消耗;查詢快取時會加鎖,讀寫頻繁的系統中查詢快取使用效率低下。介於以上原因,建議關閉查詢快取。
(2)伺服器端進行sql解析,預處理,再由優化器生成對應的執行計畫:
解析環節,包括使用mysql語法校驗規則驗證,關鍵字的使用是否正確,順序是否合理等;預處理環節,包括表和資料列是否正常存在,別名是否存在歧義等;
這裡著重強調查詢優化器的作用,其根據儲存引擎提供的關於表的統計資訊,包括行數和字段型別等,由成本模型生成最優的執行計畫,其所認為的最優並不能簡單等同於人眼中的最優,更為關鍵的是從不考慮併發環節中加鎖對查詢效能的影響,這一點其實並不是合理的。那麼它可以實現哪些優化呢?
歡迎閱讀哦,
mysql 體系結構 了解MySQL體系結構
mysql 資料庫體系結構圖 mysql 由以下幾部分組成 1 connectors 不同語言中與 sql 的互動 show variables like connection variable name value character set connection utf8 collation c...
簡述mysql體系結構 MySQL體系結構
一 mysql登入方式 一 tcp ip方式 遠端 本地 mysql uroot poldboy123 h 10.0.0.51 p3306 二 socket方式 mysql uroot poldboy123 s tmp mysql.sock 二 例項介紹 例項 mysqld後台守護程序 主線程 ma...
體系 體系結構與架構
體系,泛指部分組合而成的整體,是不同系統組成的系統。體系強調部分與整體的關係 系統體系結構是乙個綜合模型,系統體系結構是由許多結構要素及各種檢視 或觀點 view 所組成的 所以,系統體系結構是乙個綜合各種觀點的模型,用來完整描述整個系統。軟體體系結構是具有一定形式的結構化元素,即構件的集合,包括處...