国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL面試題:一條SQL語句在MySQL中執(zhí)行過程全解析

這篇具有很好參考價值的文章主要介紹了MySQL面試題:一條SQL語句在MySQL中執(zhí)行過程全解析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一 .MySQL 基礎(chǔ)架構(gòu)分析

介紹一下下圖涉及的一些組件的基本作用幫助大家理解這幅圖。

  • 連接/線程處理(連接器): 身份認(rèn)證和權(quán)限相關(guān)(如連接處理、授權(quán)認(rèn)證、安全等等)。
  • 查詢緩存: 執(zhí)行查詢語句的時候,會先查詢緩存(MySQL 8.0 版本后移除)。
  • 解析器: 沒有命中緩存的話,SQL 語句就會經(jīng)過解析器,MySQL會解析查詢,并創(chuàng)建內(nèi)部數(shù)據(jù)結(jié)構(gòu)(解析樹)
       ? 就是要先看你的 SQL 語句要干嘛,再檢查 SQL 語句語法是否正確。
  • 優(yōu)化器: 按照 MySQL 認(rèn)為最優(yōu)的方案去執(zhí)行。比如對其進(jìn)行各種優(yōu)化,包括重寫查詢、決定表的讀取順序,以及選擇合適的索引等。
  • 執(zhí)行器: 執(zhí)行語句,然后從存儲引擎返回數(shù)據(jù)。

MySQL面試題:一條SQL語句在MySQL中執(zhí)行過程全解析

簡單來說 MySQL 主要分為 Server 層和存儲引擎層:

Server 層:主要包括連接器、查詢緩存、分析器、優(yōu)化器、執(zhí)行器等,所有跨存儲引擎的功能都在這一層實現(xiàn),比如存儲過程、觸發(fā)器、視圖,函數(shù)等,還有一個通用的日志模塊 binglog 日志模塊。
存儲引擎: 主要負(fù)責(zé)數(shù)據(jù)的存儲和讀取,采用可以替換的插件式架構(gòu),支持 InnoDB、MyISAM、Memory 等多個存儲引擎,其中 InnoDB 引擎有自有的日志模塊 redolog 模塊?,F(xiàn)在最常用的存儲引擎是   

二.總結(jié)

MySQL 主要分兩個層面一個為 Server 層和引擎層,Server 層主要包括連接器、查詢緩存、分析器、優(yōu)化器、執(zhí)行器,同時還有一個日志模塊(binlog),這個日志模塊所有執(zhí)行引擎都可以共用,redolog 只有 InnoDB 有。
引擎層是插件式的,目前主要包括,MyISAM,InnoDB,Memory 等。
SQL 等執(zhí)行過程分為兩類,一類對于查詢等過程如下:權(quán)限校驗—》查詢緩存—》分析器—》優(yōu)化器—》權(quán)限校驗—》執(zhí)行器—》引擎
對于更新等語句執(zhí)行流程如下:分析器----》權(quán)限校驗----》執(zhí)行器—》引擎—redo log prepare—》binlog—》redo log commit
來源于:https://blog.csdn.net/weter_drop/article/details/93386581文章來源地址http://www.zghlxwxcb.cn/news/detail-776214.html

到了這里,關(guān)于MySQL面試題:一條SQL語句在MySQL中執(zhí)行過程全解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 從Mysql架構(gòu)看一條查詢sql的執(zhí)行過程

    我們的程序或者工具要操作數(shù)據(jù)庫,第一步要做什么事情? 跟數(shù)據(jù)庫建立連接。 首先,MySQL必須要運(yùn)行一個服務(wù),監(jiān)聽默認(rèn)的3306端口。在我們開發(fā)系統(tǒng)跟第三方對接的時候,必須要弄清楚的有兩件事。 第一個就是通信協(xié)議,比如我們是用HTTP還是WebService還是TCP? 第二個是消

    2024年02月08日
    瀏覽(92)
  • myql進(jìn)階-一條查詢sql在mysql的執(zhí)行過程

    myql進(jìn)階-一條查詢sql在mysql的執(zhí)行過程

    目錄 1. 流程圖 2. 各個過程 2.1 連接器 2.2 分析器 2.3 優(yōu)化器 2.4 執(zhí)行器 2.5 注意點(diǎn) 假設(shè)我們執(zhí)行一條sql語句如下: 首先我們會和mysql建立連接,此時就會執(zhí)行到連接器。 連接器的職責(zé)是負(fù)責(zé)和客戶端建立連接、獲取權(quán)限、維持和管理連接。 我們執(zhí)行sql之前首先要和數(shù)據(jù)庫建立

    2024年01月21日
    瀏覽(95)
  • GaussDB SQL查詢語句執(zhí)行過程解析

    本文分享自華為云社區(qū)《【GaussTech第2期】GaussDB SQL查詢語句執(zhí)行過程解析》,作者: GaussDB 數(shù)據(jù)庫。 SQL于關(guān)系型數(shù)據(jù)庫而言,重要性不言而喻。就像一個樂團(tuán)的指揮,指導(dǎo)著作品的正確演繹和節(jié)奏的和諧統(tǒng)一。華為云GaussDB作為新一代關(guān)系型分布式數(shù)據(jù)庫,具備卓越的技術(shù)性

    2024年04月24日
    瀏覽(25)
  • MySQL內(nèi)部機(jī)制:SQL語句的執(zhí)行過程淺析

    目錄 1. 連接與認(rèn)證 2. 解析與優(yōu)化 3. 查詢緩存 4. 打開表和讀取數(shù)據(jù) 5. 執(zhí)行 6. 返回結(jié)果 7. 日志記錄 8. 關(guān)閉連接 當(dāng)我們在MySQL中執(zhí)行一個SQL語句時,背后發(fā)生了一系列的操作和步驟。下面是一個簡化的概述,描述了SQL語句在MySQL中的執(zhí)行過程或原理: 客戶端(如應(yīng)用程序或命

    2024年03月12日
    瀏覽(92)
  • 01 | 一條 SQL 查詢語句是如何執(zhí)行的?

    01 | 一條 SQL 查詢語句是如何執(zhí)行的?

    以下內(nèi)容出自 《MySQL 實戰(zhàn) 45 講》 一條 SQL 查詢語句是如何執(zhí)行的? 下面是 MySQL 的基本架構(gòu)示意圖,從中可以清楚地看到 SQL 語句在 MySQL 的各個功能模塊中的執(zhí)行過程。 大體來說,MySQL 可以分為 Server 層和存儲引擎層兩部分。 Server 層包括連接器、查詢緩存、分析器、優(yōu)化器

    2024年02月10日
    瀏覽(24)
  • 01 | 基礎(chǔ)架構(gòu):一條SQL查詢語句是如何執(zhí)行的?

    畫出 MySQL 的基本架構(gòu)圖 Server 層和存儲引擎層各自有哪些組件? Server 層 連接器 查詢緩存 分析器 優(yōu)化器 執(zhí)行器 所有內(nèi)置函數(shù)(日期、時間、數(shù)學(xué)和加密函數(shù)等) 所有跨存儲引擎的功能(存儲過程、觸發(fā)器、視圖等) 存儲引擎層 負(fù)責(zé)數(shù)據(jù)的存儲和讀取 連接器的作用? 連接

    2024年02月08日
    瀏覽(23)
  • MYSQL執(zhí)行一條SELECT語句的具體流程

    MYSQL執(zhí)行一條SELECT語句的具體流程

    昨天CSDN突然抽風(fēng)?我一個ctrl+z把整篇文章給撤掉了還不能復(fù)原?直接心態(tài)崩了不想寫了?不過這部分果然還是很重要,還是寫出來吧 這里面總共有兩層結(jié)構(gòu)Server層?儲存引擎 Server 層負(fù)責(zé)建立連接、分析和執(zhí)行 SQL 。MySQL 大多數(shù)的核心功能模塊都在這實現(xiàn),主要包括連接器,查詢

    2024年02月12日
    瀏覽(14)
  • MySQL執(zhí)行流程_執(zhí)行一條select語句,期間發(fā)生了什么

    MySQL執(zhí)行流程_執(zhí)行一條select語句,期間發(fā)生了什么

    MySQL執(zhí)行流程 server層負(fù)責(zé)建立連接、分析和執(zhí)行SQL 包括連接器、查詢緩存、解析器、預(yù)處理器、優(yōu)化器、執(zhí)行器等,所有內(nèi)置函數(shù)和所有跨存儲引擎的功能在該層實現(xiàn) 存儲引擎層負(fù)責(zé)數(shù)據(jù)的存儲和提取 索引數(shù)據(jù)結(jié)構(gòu)就是由存儲引擎層實現(xiàn),不同的存儲引擎支持的索引類型也

    2024年02月04日
    瀏覽(24)
  • 如何進(jìn)行MySQL源碼調(diào)試(一條select語句的執(zhí)行流程)

    如何進(jìn)行MySQL源碼調(diào)試(一條select語句的執(zhí)行流程)

    一、背景 MySQL是當(dāng)今世上最受歡迎的使用最廣泛的開源數(shù)據(jù)庫,它的繁榮離不開它的開源特性。放在過去商業(yè)數(shù)據(jù)庫的時代,大家都沒有機(jī)會接觸到數(shù)據(jù)庫的源代碼,但在如今開源數(shù)據(jù)庫的時代,越來越多的人開始研究數(shù)據(jù)庫的源碼,并給社區(qū)貢獻(xiàn)代碼,MySQL官方每次發(fā)布新

    2024年02月03日
    瀏覽(23)
  • 一條SQL在MySQL中是如何執(zhí)行的

    一條SQL在MySQL中是如何執(zhí)行的

    MySQL的內(nèi)部組件結(jié)構(gòu) 連接數(shù)據(jù)庫做了什么? 建立鏈接的時候需要將host,user,pwd,在user表中校驗用戶(用戶名和密碼)是否正確。每個鏈接鏈接到服務(wù)器端之后會給鏈接開辟一個專屬的空間。這個空間存儲了很多這個鏈接需要使用的操作。并且會把這個用戶的權(quán)限都放到這個空間

    2023年04月09日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包