1、client和server建立連接,client發(fā)送sql至server(對應連接器這一過程)

成都創(chuàng)新互聯(lián)專注于正安網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供正安營銷型網站建設,正安網站制作、正安網頁設計、正安網站官網定制、微信小程序開發(fā)服務,打造正安網絡公司原創(chuàng)品牌,更為您提供正安網站排名全網營銷落地服務。
2、server如果在查詢緩存中發(fā)現(xiàn)了該sql,則直接使用查詢緩存的結果返回給client,如果查詢緩存中沒有,則進入下面的步驟(對應查詢緩存這一過程,8.0這一過程已經不存在了,8.0完全拋棄了這個功能)
3、server對sql進行語法分析,識別出sql里面的字符串是否符合標準,比如select關鍵字不能寫錯(對應分析器這一過程)
4、server對sql進行語義分析,識別出sql里面的字符串的具體意思是什么,比如T1是表名,C1是列名(對應分析器這一過程。3、4步其實解析的過程,這個解析的過程是分析器的工作不是優(yōu)化器的工作)
5、server確定sql的執(zhí)行路徑,比如走索引還是全表,多表連接時哪張表先走哪張表后走,當你的where條件的可讀性和效率有沖突時MySQL內部還會自動進行優(yōu)化,也就是大家理解的重寫where子句(對應優(yōu)化器這一過程)
6、server對執(zhí)行sql的用戶進行權限檢查,比如對表是否有權限執(zhí)行(對應執(zhí)行器這一過程)
7、server執(zhí)行該sql語句,發(fā)送結果給client(對應執(zhí)行器這一過程)
連接器-->查詢緩存-->分析器-->優(yōu)化器-->執(zhí)行器
如果表 T1 中沒有字段 C1,而執(zhí)行select * from T1 where C1=1會報錯不存在C1這個列,這個過程對應上面第4個過程,對應分析器這一過程
如果用戶對T1表沒有權限,而執(zhí)行select * from T1 where C1=1會報錯對表T1沒有權限,這個過程對應上面第6個過程,對應執(zhí)行器這一過程
新聞標題:mysql的sql語句執(zhí)行流程
文章出自:http://www.chinadenli.net/article2/pgsdoc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、網站導航、自適應網站、動態(tài)網站、用戶體驗、搜索引擎優(yōu)化
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)