一條SQL語句如何被執行

2021-09-24 21:03:59 字數 682 閱讀 8704

select * from t where id=10;
寫乙個查詢語句不難,但你知道一條sql語句被執行的過程嗎?

下圖是mysql的基本架構圖。

server層類似中介軟體,主要接受使用者請求,解析請求等。儲存引擎則是底層核心,負責資料的訪問。

客戶端要想使用mysql,必須先和mysql建立乙個連線,聯結器負責和客戶端建立連線、獲取許可權、維持和管理連線。

mysql -h$ip -p$port -u$user -p$password
快取的形式是key-value,以你的整條查詢語句為key,結果為value。

當你的查詢語句在快取中則直接返回快取裡的結果,當不在就繼續後續的查詢,並將結果快取在快取中。

但大多數情況下不建議使用查詢快取。

真正執行之前需要弄清楚你要做什麼,分析器就是對sql語句進行解析。

分詞器包括詞法分析和語法分析。

通過分析器,mysql知道了你要做什麼,但做的方式可能有多種,優化器的作用就是盡可能確定乙個好的執行方式。

執行器就是真正執行的階段,一般和儲存引擎打交道。

2 2 執行一條SQL語句

對資料庫執行一條sql語句 1 mixed mysqli query mysqli link,string query,int resultmode mysqli store result 1 對於insert,update,delete等不會返回資料的sql語句,在執行沒有錯誤時返回true 2 ...

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

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

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

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