{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問(wèn)答專(zhuān)欄Q & A COLUMN

一條SQL語(yǔ)句在MySQL中是如何執(zhí)行的?

shusenshusen 回答0 收藏1
收藏問(wèn)題

5條回答

lifefriend_007

lifefriend_007

回答于2022-06-28 13:48

1、客戶(hù)端發(fā)送一條查詢(xún)給服務(wù)器;然后客戶(hù)端能做的就只是等待服務(wù)端的結(jié)果。

2、服務(wù)端收到查詢(xún)后先檢查查詢(xún)緩存,如果剛好命中了緩存那么OK直接從緩存里拿出結(jié)果給客戶(hù)端。如果沒(méi)有那么就進(jìn)入下一階段。

3、服務(wù)器段解析SQL語(yǔ)句并進(jìn)行一定的預(yù)處理,然后在優(yōu)化器生成對(duì)應(yīng)的執(zhí)行計(jì)劃(優(yōu)化器的功能是找出最佳的執(zhí)行計(jì)劃);如果在這個(gè)過(guò)程中遇到任何錯(cuò)誤都可能停止此次查詢(xún)。

4、mysql根據(jù)優(yōu)化器生成的最佳執(zhí)行計(jì)劃,通過(guò)存儲(chǔ)引擎的API來(lái)執(zhí)行查詢(xún),返回查詢(xún)結(jié)果。

5、mysql將結(jié)果返回給客戶(hù)端。

實(shí)際上mysql執(zhí)行的每一步都比較復(fù)雜,此處僅就流程簡(jiǎn)要描述。


評(píng)論0 贊同0
  •  加載中...
entner

entner

回答于2022-06-28 13:48

MySQL執(zhí)行SQL的流程大概這樣子的:

1. 連接器,這個(gè)步驟是和客戶(hù)端建立連接

2. 分析器,解析SQL語(yǔ)句,這一步如果SQL語(yǔ)句寫(xiě)的不對(duì)就會(huì)報(bào)錯(cuò)了

3. 優(yōu)化器,這個(gè)步驟主要是選擇索引的,MySQL會(huì)選擇認(rèn)為最優(yōu)的索引,實(shí)際上可能不是最優(yōu)的

4. 執(zhí)行器,這個(gè)步驟主要是根據(jù)表的定義,調(diào)用具體的存儲(chǔ)引擎執(zhí)行SQL,現(xiàn)在默認(rèn)引擎是innodb。還有就是記錄binlog日志。

這里省略了查詢(xún)緩存的步驟,這個(gè)步驟在連接器之后,不過(guò)一般都是關(guān)閉緩存的。

評(píng)論0 贊同0
  •  加載中...
233jl

233jl

回答于2022-06-28 13:48

一張圖說(shuō)明你的問(wèn)題。

謝謝!


評(píng)論0 贊同0
  •  加載中...
Juven

Juven

回答于2022-06-28 13:48

作為一個(gè)剛?cè)肟硬痪玫拇a農(nóng),我也想知道,如何才能快速學(xué)習(xí)數(shù)據(jù)庫(kù)。

評(píng)論0 贊同0
  •  加載中...
qianfeng

qianfeng

回答于2022-06-28 13:48

詞法分析->優(yōu)化->表引擎,根據(jù)引擎需要中間可能還有一些回調(diào),大體邏輯就是這樣

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過(guò)該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說(shuō)句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<