国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL查詢語句的執行過程實例解析

2024-07-24 12:33:06
字體:
來源:轉載
供稿:網友
  這篇文章主要講解了“MySQL查詢語句的執行過程實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL查詢語句的執行過程實例分析”吧!
 
  1、MYSQL架構
 
  Server層 包括連接器、查詢緩存、分析器、優化器、執行器等,所有跨存儲引擎的功能都在這一層實現,比如存儲過程、觸發器、視圖、函數等,還有個通用的日志模塊binlog日志模塊;
 
  存儲引擎層 負責數據的存儲和提取。其架構模式是插件式的,支持 InnoDB、MyISAM、Memory 等多個存儲引擎?,F在最常用的存儲引擎是 InnoDB(支持事務),它從 MySQL5.5.5 版本開始成為默認存儲引擎。
 
  2、連接器
  連接器主要負責用戶登錄數據庫,進行用戶的身份認證,包括校驗賬戶密碼,權限等操作。
 
  如果用戶密碼不對,你就會收到一個"Access denied for user"的錯誤,然后客戶端程序結束執行。
 
  如果用戶賬戶密碼已通過,連接器會到權限表中查詢該用戶的所有權限,之后在這個連接里的權限邏輯判斷都是會依賴此時讀取到的權限數據,也就是說,后續只要這個連接不斷開,即時管理員修改了該用戶的權限,該用戶也是不受影響的。
 
  3、查詢緩存( Query cache)
  客戶端與服務端建立連接后,MySQL 在執行查詢語句時會先查詢緩存,校驗這條SQL是不是在之前執行過。之前執行過的語句及其結果會以 key-value 對的形式,被直接緩存在內存中。key 是查詢的語句,value 是查詢的結果。如果你的查詢能夠直接在這個緩存中找到 key,那么這個value 就會被直接返回給客戶端。如果沒有命中,則需要執行后續的操作,完成后也會把結果緩存起來,方便下一次調用。
 
  4、分析器
  Mysql沒有命中查詢緩存,那么就會進入分析器,分析器主要是用來分析SQL語句是來干嘛的。分析器主要分為以下兩步:
 
  詞法分析 :一條SQL語句有多個字符串組成,首先要提取關鍵字,比如select,提出查詢的表,提出字段名,提出查詢條件等等。
  語法分析:根據詞法分析的結果,語法分析主要就是判斷你輸入的SQL語句是否正確,是否符合MYSQL語法,如果你的語句不對,就會收到“You have an error in your SQL syntax”的錯誤提醒。
  詞法分析程序將整個查詢語句分解成各類標志,語法分析根據定義的系統語言將“各類標志”轉為對MySQL有意義的組合。最后系統生成一個語法樹(AST),語法樹便是優化器依賴的數據結構。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旬阳县| 丰镇市| 高邑县| 临城县| 湘潭县| 瑞安市| 临颍县| 嘉黎县| 小金县| 新闻| 天全县| 长宁县| 独山县| 密山市| 壶关县| 保山市| 永和县| 万盛区| 无为县| 青铜峡市| 潼南县| 武宣县| 疏附县| 葵青区| 武定县| 广州市| 当阳市| 鄂州市| 辉南县| 盖州市| 屏边| 隆化县| 永善县| 阜宁县| 通化市| 平顶山市| 泽普县| 那坡县| 自治县| 从江县| 从江县|