一條SQL查詢語句是如何執行的

2022-05-08 09:39:11 字數 342 閱讀 9292

大體來說,mysql分為

server

層和儲存引擎層,

server

層有聯結器、分析器、優化器、執行器和查詢快取;

其中,客戶端發出請求與聯結器建立連線並獲取許可權,

分析器對sql語句做分析並判斷是否正確;

優化器決定使用哪個索引,生成執行計畫,決定多表連線中表的連線順序。

執行器執行語句,操作儲存引擎,並返回結果;

在server層中,查詢請求先訪問快取,命中直接返回。不推薦使用快取,更新會把快取清除

(關閉快取:引數

query_cache_type

設定成demand)

一條SQL查詢語句是如何執行的

mysql可以分為server層和儲存引擎層兩部分 一條普通的查詢語是怎樣執行並返回結果了 聯結器查詢快取 大多數情況下建議不要使用查詢快取,查詢快取往往弊大於利。查詢快取的失效非常頻繁,只要有對乙個表的更新,這個表上所有的查詢快取都會被清空。分析器優化器 比如你執行下面這樣的語句,這個語句是執行兩...

一條SQL查詢語句是如何執行的?

我們在寫sql的時候crud這些基本的操作想必大家已經是得心應手了,專欄會更傾向於sql優化與執行過程模型的角度重新學習sql,方便大家在做效能優化上更加熟練。select from t where id 10 接下來我們來拆解一下這個sql語句,從中就可以看出sql在mysql中各個模組的執行過程...

一條SQL查詢語句是如何執行的

server層包括聯結器 查詢快取 分析器 優化器 執行器等,涵蓋了mysql的大多數核心服務功能以及所有的內建函式,所有跨儲存引擎的功能都在這一層實現,比如儲存過程 觸發器 檢視等。而儲存引擎層負責資料的儲存與提取。其架構模式是外掛程式式的,支援innodb myisam memory等多個儲存引...