mysql架構查詢執行流程(圖解+描述)

目錄

mysql架構查詢執行流程

圖解

描述?


mysql架構查詢執行流程

圖解

描述?

用戶連接到數據庫后,由連接器處理

  • 連接器負責跟客戶端建立連接、獲取權限、維持和管理連接

客戶端發送一條查詢給服務器

  • 服務器先檢查查詢緩存,如果命中緩存,則立即返回存儲在緩存中的結果 ; 否則進入下一階段

服務器進行SQL解析、預處理得到解析樹

  • 分析器主要有兩步: 詞法分析和語法分析 ;?預處理器根據mysql規則檢查解析樹是否合法
  • 語法解析器和預處理:mysql通過關鍵字將sql語句進行解析,并生成一顆對應的 “解析樹”

由優化器生成對應的執行計劃(這個過程中任何語法等錯誤都可能終止查詢)

  • 優化器是在表里面有多個索引的時候,決定使用哪個索引 / 在一個語句有多表關聯的時候,決定各個表的連接順序

mysql通過分析器知道了你要做什么,通過優化器知道了該怎么做,于是就進入了執行器階段,開始執行語句

  • 開始執行的時候,要先判斷一下你對這個表有沒有執行查詢的權限
  • 如果沒有,就會返回沒有權限的錯誤
  • 如果有權限,mysql根據優化器生成的執行計劃,調用存儲引擎的 API 來執行查詢

最后將結果返回給客戶端,并且會將結果存放到查詢緩存中

參考 --?MySQL 查詢執行的過程 - Java程序員進階 - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72092.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【QT問題】Ubantu環境下解決已經下載好的qt怎么添加或卸載其他組件

1、找到自己qt的安裝目錄->雙擊打開MaintenanceTool.exe 2、點擊next進去,此時需要登錄qt賬戶(如果沒有去官網注冊一個,很快且免費) 我這里隨便填的賬號,如果是正確的下面next就能夠點擊。 這里隨便提一下&#xf…

CS50 使用 Python 進行人工智能簡介-“騎士與流氓”謎題

如何使用邏輯推理來解決“騎士與騙子”(Knights and Knaves)類型的邏輯難題。具體來說,任務是根據每個角色的陳述推理出他們是“騎士”還是“騙子”。 任務背景: 騎士與騙子問題:每個角色要么是騎士,要么是…

每日學習Java之一萬個為什么?[MySQL面試篇]

分析SQL語句執行流程中遇到的問題 前言1 MySQL是怎么在一臺服務器上啟動的2 MySQL主庫和從庫是同時啟動保持Alive的嗎?3 如果不是主從怎么在啟動的時候保證數據一致性4 ACID原則在MySQL上的體現5 數據在MySQL是通過什么DTO實現的6 客戶端怎么與MySQL Server建立連接…

詳細解析d3dx9_27.dll丟失怎么辦?如何快速修復d3dx9_27.dll

運行程序時提示“d3dx9_27.dll文件缺失”,通常由DirectX組件損壞或文件丟失引起。此問題可通過系統化修復方法解決,無需重裝系統或軟件。下文將詳細說明具體步驟及注意事項。 一.d3dx9_27.dll缺失問題的本質解析 當系統提示“d3dx9_27.dll丟失”時&…

IP----訪問服務器流程

這只是IP的其中一塊內容-訪問服務器流程,IP還有更多內容可以查看IP專欄,前一段學習內容為IA內容,還有更多內容可以查看IA專欄,可通過以下路徑查看IA-----配置NAT-CSDN博客CSDN,歡迎指正 1.訪問服務器流程 1.分層 1.更利于標準化…

Linux報 “device or resource busy” 異常的原因以及解決辦法

首先,Linux報"device or resource busy"的原因是因為某個進程正在占用該設備或資源,導致其他進程無法訪問該設備或資源。 解決該問題的辦法有以下幾種: 查找占用該設備或資源的進程,然后將其停止或結束。可以使用以下…

和鯨科技推出人工智能通識課程解決方案,助力AI人才培養

2025年2月,教育部副部長吳巖應港澳特區政府邀請,率團赴港澳宣講《教育強國建設規劃綱要 (2024—2035 年)》。在港澳期間,吳巖闡釋了教育強國目標的任務,并與特區政府官員交流推進人工智能人才培養的辦法。這一系列行動體現出人工智…

java springboot 中調用 C++ 方法

以下是一個完整的 Spring Boot 調用 C 方法的 Demo,采用 JNI (Java Native Interface) 方式實現,包含詳細步驟說明: 1. 項目結構 demo-project/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/…

JSX基礎 —— 識別JS表達式

在JSX中可以通過 大括號語法 { } 識別JS中的表達式,比如常見的變量、函數調用、方法調用等等 1、使用引號傳遞字符串 2、使用JavaScript變量 3、函數調用和方法調用 (函數和方法本質沒有區別,這里默認: 函數是自己定義的,方法是…

git從零學起

從事了多年java開發,一直在用svn進行版本控制,如今更換了公司,使用的是git進行版本控制,所以打算記錄一下git學習的點滴,和大家一起分享。 百度百科: Git(讀音為/g?t/)是一個開源…

關于對async和await的初步理解

async 包裹著的函數中進程是堵塞的 ,是同步化的, await等待的是個promise對象,否則"await" 對此表達式的類型沒有影響 例1 async getDataDD(){await this.fun1()await this.fun2()// await Promise.all([this.fun1(),this.fun…

MySQL—Keepalived+MySQL雙主復制實現MySQL高可用

Keepalived原理: Keepalived 的原理主要基于虛擬路由冗余協議(VRRP,Virtual Router Redundancy Protocol)、健康檢查機制和負載均衡機制,以下為你詳細介紹: VRRP 協議實現高可用:VRRP 是 Keep…

SpringBoot AOP 源碼解析

文章目錄 一、AOP 代碼示例1. 準備注解和目標類2. 定義 Aspect3. 結論 二、源碼1. AOP 實現核心類2. 代理類的創建流程2.1 核心類 AbstractAutoProxyCreator2.2 AbstractAutoProxyCreator#postProcessBeforeInstantiation2.3 AspectJAwareAdvisorAutoProxyCreator#shouldSkip2.…

Linux:Shell環境變量與命令行參數

目錄 Shell的變量功能 什么是變量 變數的可變性與方便性 影響bash環境操作的變量 腳本程序設計(shell script)的好幫手 變量的使用:echo 變量的使用:HOME 環境變量相關命令 獲取環境變量 環境變量和本地變量 命令行…

MySQL數據庫入門到大蛇尚硅谷宋紅康老師筆記 高級篇 part 5

第05章_存儲引擎 為了管理方便,人們把連接管理、查詢緩存、語法解析、查詢優化這些并不涉及真實數據存儲的功能劃分為MySQLserver的功能,把真實存取數據的功能劃分為存儲引擎的功能。所t以在MySQLserver完成了查詢優化后,只需按照生成的執行…

JAVA面試_進階部分_23種設計模式總結

1. 單例模式:確保某一個類只有一個實例,而且自行實例化并向整個系統提供這 個實例。 (1)懶漢式 public class Singleton { /* 持有私有靜態實例,防止被引用,此處賦值為null,目的是實現延遲加載…

滲透測試(WAF過濾information_schema庫的繞過,sqllib-46關,海洋cms9版本的注入)

1.sqlin-lib 46關 打開網站配置文件發現 此網站的對ID進行了排序,我們可以知道,order by接不了union ,那我們可以通過測試sort,rond等函數,觀察網頁的反饋來判斷我們的盲注是否正確 我們發現 當參數有sort來排序時&…

AORO M6北斗短報文終端:將“太空黑科技”轉化為安全保障

在衛星導航領域,北斗系統作為我國自主研發的全球衛星導航系統,正以其獨特的短報文通信功能引發全球范圍內的廣泛關注。這一突破性技術不僅使北斗系統在全球四大導航系統中獨樹一幟,具備了雙向通信能力,更通過遨游通訊推出的AORO M…

ARCGIS國土超級工具集1.4更新說明

ARCGIS國土超級工具集V1.4版本,功能已增加至54 個。本次更新在V1.3版本的基礎上,新增了“拓撲問題修復工具”并同時調整了數據處理工具欄的布局、工具操作界面的選擇圖層下拉框新增可選擇位于圖層組內的要素圖層功能、數據保存路徑新增了可選擇數據庫內的…

Element Plus中el-select選擇器的下拉選項列表的樣式設置

el-select選擇器,默認樣式效果: 通過 * { margin: 0; padding: 0; } 去掉內外邊距后的樣式效果(樣式變丑了): 通過 popper-class 自定義類名修改下拉選項列表樣式 el-select 標簽設置 popper-class"custom-se…