日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQL中SQL語句執(zhí)行流程是怎么樣的

這篇文章主要介紹MySQL中SQL語句執(zhí)行流程是怎么樣的,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、弋陽網(wǎng)絡(luò)推廣、成都小程序開發(fā)、弋陽網(wǎng)絡(luò)營銷、弋陽企業(yè)策劃、弋陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供弋陽建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

總的來說,MySQL邏輯架構(gòu)可以分為server層和存儲引擎層這兩個部分。這篇文章記錄的是SQL語句執(zhí)行流程,主要是發(fā)生在server層上面的事。

server層主要包括了MySQL數(shù)據(jù)庫大多數(shù)的功能,畢竟執(zhí)行SQL大部分是在這一層去實現(xiàn)的嘛^_^。這一層細分下來可以分為:查詢緩存(query cache 有的簡稱QC),解析器也可叫分析器,預(yù)處理器(其實也可以歸在分析器里面),查詢優(yōu)化器等。

存儲引擎層主要的工作是存儲、提取數(shù)據(jù)。當(dāng)前主要的存儲引擎種類有:InnoDB,MyISAM,tokuDB等,他們的區(qū)別如下:

MySQL中SQL語句執(zhí)行流程是怎么樣的

在InnoDB和MyISAM這兩種存儲引擎中,當(dāng)前使用較廣的是InnoDB,MyISAM由于不支持事務(wù),不支持行鎖等原因在8.0版本后已經(jīng)被徹底廢棄了。從MySQL5.5版本開始,InnoDB成為MySQL數(shù)據(jù)庫默認的存儲引擎。

先說結(jié)論吧,一條SQL語句從客戶端發(fā)起后,到MySQL數(shù)據(jù)庫,先會進行一系列驗證(比如查詢/更新權(quán)限),接著到查詢緩存,再到解析器,查詢優(yōu)化器,完成執(zhí)行語句的操作從存儲引擎中調(diào)取結(jié)果返回給客戶端。

一、連接&&驗證權(quán)限

MySQL的連接主要有兩種方式,一種是從服務(wù)器本地發(fā)起的,通過root用戶,使用socket登錄,還有一種是我們從客戶端發(fā)起的屬于遠程連接,一般來說遠程連接數(shù)據(jù)庫通常需要輸入的幾個要素:用戶名、密碼、端口號、IP地址。

連接首先驗證的是密碼是否正確,當(dāng)前用戶在當(dāng)前IP是否有權(quán)限登錄等,登錄完成后,該登錄用戶會具有當(dāng)前已分配給他的權(quán)限(增刪改查等)。

二、查詢緩存

上一步的驗證完成后,SQL執(zhí)行就會來到查詢緩存(query cache),看是否有執(zhí)行過該SQL語句緩存有該SQL執(zhí)行結(jié)果,如果有,直接取出結(jié)果返回給客戶端,如果沒有則進行下一步的查詢。

不可否認,如果每次都能在查詢緩存中獲取數(shù)據(jù),這個效率是很高的。但是對于實際應(yīng)用中,并不建議使用查詢緩存。因為查詢緩存只能針對靜態(tài)數(shù)據(jù)不能針對動態(tài)數(shù)據(jù),很可能好不容易緩存好的數(shù)據(jù),其中有表發(fā)生了更新,一下子緩存好的數(shù)據(jù)就被清掉了。而在8.0版本后,這功能也被徹底廢棄了,在8.0之前的版本一般是建議關(guān)閉查詢緩存功能的。

三、解析器

在第二步的查詢緩存中沒能獲取或者說沒能命中查詢緩存,就會首先進行SQL解析,包含語法,語義解析:是要進行查詢還是更新操作,語句寫的有沒問題之類的,生成一個解析樹,提交給下一步。

四、預(yù)處理器(其實也可以歸在解析器里面)

將第三步中解析過的解析樹進行預(yù)處理,相對于第三部來說會進行更深層次的判斷,比如表/列是否存在之類的,會把解析樹處理為更為平衡的平衡樹結(jié)構(gòu)。

五、查詢優(yōu)化器

預(yù)處理完成后,來到查詢優(yōu)化器,這里決定了比如走哪個索引等,轉(zhuǎn)化前面的平衡樹為執(zhí)行計劃,并選出一個數(shù)據(jù)庫認為是最優(yōu)的執(zhí)行計劃進行SQL的執(zhí)行。

六、SQL執(zhí)行

從存儲引擎層調(diào)取需要的數(shù)據(jù),返回給客戶端,至此,流程結(jié)束。

以上是“MySQL中SQL語句執(zhí)行流程是怎么樣的”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁題目:MySQL中SQL語句執(zhí)行流程是怎么樣的
URL分享:http://www.dlmjj.cn/article/gdhhie.html