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

MySQL數(shù)據(jù)庫架構(gòu)

這篇具有很好參考價值的文章主要介紹了MySQL數(shù)據(jù)庫架構(gòu)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

MySQL數(shù)據(jù)庫架構(gòu)

MySQL架構(gòu)自頂向下大致可以分為連接層 , SQL層 , 存儲引擎層 , 物理文件層。架構(gòu)如下

MySQL數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫,mysql,數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫

連接層

MySQL數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫,mysql,數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫

-- 查看最大連接數(shù)
show variables like '%max_connections%';

客戶端連接器,MySQL向外提供交互接口連接各種不同的客戶端。

  1. 客戶端/應(yīng)用程序:客戶端是與MySQL系統(tǒng)進行交互的組件,它可以是命令行工具、圖形用戶界面 (GUI) 或各種編程語言中的數(shù)據(jù)庫連接庫??蛻舳素?fù)責(zé)發(fā)送SQL查詢請求給MySQL服務(wù)器,并接收返回的結(jié)果。
  2. 連接管理器:連接管理器負(fù)責(zé)處理客戶端連接請求。它接收來自客戶端的連接請求,并將它們分配給MySQL服務(wù)器線程池中的可用線程。連接管理器還負(fù)責(zé)驗證用戶的身份、管理連接池和控制連接數(shù)等。

特點:

(1)提供連接協(xié)議:TCP/IP 、SOCKET
(2)提供驗證:用戶、密碼,IP,SOCKET
(3)提供專用連接線程:接收用戶SQL,返回結(jié)果

 通過以下語句可以查看到連接線程基本情況
 mysql> show processlist;

SQL層

MySQL的核心,主要分為連接池(Connection Pool) , 系統(tǒng)管理和控制工具(Management Serveices & Utilities) , SQL接口(SQL Interface) , 解析器(Parser) , 查詢優(yōu)化器(Optimizer) , 查詢緩存(Caches&Buffers)。

  • 連接池(Connection Pool)

    負(fù)責(zé)存儲和管理客戶端與數(shù)據(jù)庫的連接,一個線程負(fù)責(zé)管理一個連接。

    在服務(wù)器內(nèi)部,每個client連接都有自己的線程。這個連接的查詢都在一個單獨的線程中執(zhí)行。這些線程輪流運行在某一個CPU內(nèi)核(多核CPU)或者CPU中。服務(wù)器緩存了線程,因此不需要為每個client連接單獨創(chuàng)建和銷毀線程 。

  • **系統(tǒng)管理和控制工具(Management Serveices & Utilities) **

    備份恢復(fù)、安全管理、集群管理等

  • SQL接口(SQL Interface)

    用于接受客戶端發(fā)送的SQL命令,并且返回查詢的結(jié)果。

    例如:DDL,DML,DCL,DQL等

  • 解析器(Parser)

    SQL命令傳遞到解析器的時候會被解析器驗證和解析。

  • 查詢優(yōu)化器(Optimizer)

    SQL語句在查詢之前會使用查詢優(yōu)化器對查詢進行優(yōu)化。(當(dāng)【解析樹】通過解析器語法檢查后,將交由優(yōu)化器將其轉(zhuǎn)化成執(zhí)行計劃與存儲引擎交互。一般執(zhí)行sql腳本會遵循【選取–>投影–>聯(lián)接】的策略)

  • 查詢緩存(Caches&Buffers)

    如果查詢緩存有命中的查詢結(jié)果,查詢語句就可以直接去查詢緩存中取數(shù)據(jù).

MySQL數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫,mysql,數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫

# 查詢緩存配置情況
show variables like '%query_cache%';
  • 接收上層傳送的SQL語句
  • 語法驗證模塊:驗證語句語法,是否滿足SQL_MODE
  • 語義檢查:判斷SQL語句的類型
    DDL :數(shù)據(jù)定義語言
    DCL :數(shù)據(jù)控制語言
    DML :數(shù)據(jù)操作語言
    DQL: 數(shù)據(jù)查詢語言
  • 權(quán)限檢查:用戶對庫表有沒有權(quán)限
  • 解析器:對語句執(zhí)行前,進行預(yù)處理,生成解析樹(執(zhí)行計劃),說白了就是生成多種執(zhí)行方案.
  • 優(yōu)化器:根據(jù)解析器得出的多種執(zhí)行計劃,進行判斷,選擇最優(yōu)的執(zhí)行計劃
    代價模型:資源(CPU IO MEM)的耗損評估性能好壞
  • 執(zhí)行器:根據(jù)最優(yōu)執(zhí)行計劃,執(zhí)行SQL語句,產(chǎn)生執(zhí)行結(jié)果
    執(zhí)行結(jié)果:在磁盤的xxxx位置上
  • 提供查詢緩存(默認(rèn)是沒開啟的),會使用redis tair替代查詢緩存功能
  • 提供日志記錄(日志管理章節(jié)):binlog,默認(rèn)是沒開啟的。

存儲引擎層

負(fù)責(zé)根據(jù)SQL層執(zhí)行的結(jié)果,從磁盤上拿數(shù)據(jù)。將16進制的磁盤數(shù)據(jù),交由SQL結(jié)構(gòu)化化成表,連接層的專用線程返回給用戶。

MySQL數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫,mysql,數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫

物理文件層

主要是將數(shù)據(jù)和日志存儲在運行設(shè)備的文件系統(tǒng)之上,并完成于存儲引擎的交互,是文件的物理存儲層。 主要包含日志文件,數(shù)據(jù)文件,配置文件,pid 文件,socket 文件等。

MySQL數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫,mysql,數(shù)據(jù)庫架構(gòu),數(shù)據(jù)庫

  • 日志文件

    • 錯誤日志

      show variables like '%log_error%'  --默認(rèn)開啟
      
    • 二進制日志

      記錄對數(shù)據(jù)庫執(zhí)行的操作 , 如:更改操作,語句的發(fā)生時間,執(zhí)行時長。主要用于數(shù)據(jù)庫恢復(fù)和主從復(fù)制。(不記錄select,show等不修改數(shù)據(jù)庫的SQL)

      show variables like '%log_bin%'; --是否開啟
      show variables like '%binlog%'; --參數(shù)查看
      show binary logs;--查看日志文件
      
    • 通用查詢?nèi)罩?/p>

      show variables like '%general%';--記錄一般查詢語句
      
    • 慢查詢?nèi)罩?/p>

      記錄所有執(zhí)行時間超時的查詢SQL,默認(rèn)是10秒。

      show variables like '%slow_query%'; //是否開啟
      show variables like '%long_query_time%'; //超時時間
      
    • 事務(wù)日志

      包含重做日志和撤銷日志

  • 數(shù)據(jù)文件

    • db.opt 文件

      記錄當(dāng)前庫默認(rèn)使用的字符集和校驗規(guī)則。

    • frm 文件

      存儲與表相關(guān)的元數(shù)據(jù)(meta)信息,包括表結(jié)構(gòu)的定義信息等,每一張表都會有一個frm 文件。

    • MYD 文件

      MyISAM 存儲引擎專用,存放 MyISAM 表的數(shù)據(jù)(data),每一張表都會有一個.MYD 文件。

    • MYI 文件

      MyISAM 存儲引擎專用,存放 MyISAM 表的索引相關(guān)信息,每一張 MyISAM 表對應(yīng)一個 .MYI 文件。

    • ibd文件和 IBDATA 文件

      存放 InnoDB 的數(shù)據(jù)文件(包括索引)。InnoDB 存儲引擎有兩種表空間方式:獨享表空間和共享表空間。

      獨享表空間使用 .ibd 文件來存放數(shù)據(jù),且每張InnoDB 表對應(yīng)一個 .ibd 文件。

      共享表空間使用 .ibdata 文件,所有表共同使用一個(或多個,自行配置).ibdata 文件。

    • ibdata1 文件

      系統(tǒng)表空間數(shù)據(jù)文件,存儲表元數(shù)據(jù)、Undo日志等 。

    • ib_logfile0、ib_logfile1 文件

      Redo log 日志文件。

  • 配置文件

    用于存放MySQL所有的配置信息文件,比如my.cnf、my.ini等。

  • pid文件

    pid 文件是 mysqld 應(yīng)用程序在 Unix/Linux 環(huán)境下的一個進程文件,和許多其他 Unix/Linux 服務(wù)端程序一樣,存放著自己的進程 id。

  • socket文件

    socket 文件也是在 Unix/Linux 環(huán)境下才有的,用戶在 Unix/Linux 環(huán)境下客戶端連接可以不通過TCP/IP 網(wǎng)絡(luò)而直接使用 Unix Socket 來連接 MySQL。文章來源地址http://www.zghlxwxcb.cn/news/detail-537707.html

pid 文件是 mysqld 應(yīng)用程序在 Unix/Linux 環(huán)境下的一個進程文件,和許多其他 Unix/Linux 服務(wù)端程序一樣,存放著自己的進程 id。

  • socket文件

    socket 文件也是在 Unix/Linux 環(huán)境下才有的,用戶在 Unix/Linux 環(huán)境下客戶端連接可以不通過TCP/IP 網(wǎng)絡(luò)而直接使用 Unix Socket 來連接 MySQL。

到了這里,關(guān)于MySQL數(shù)據(jù)庫架構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 阿里云數(shù)據(jù)庫PolarDB MySQL版倚天ARM架構(gòu)詳解

    阿里云數(shù)據(jù)庫PolarDB MySQL版倚天ARM架構(gòu)詳解

    阿里云云原生數(shù)據(jù)庫PolarDB MySQL版推出倚天ARM架構(gòu),倚天ARM架構(gòu)規(guī)格相比X86架構(gòu)規(guī)格最高降價45%,PolarDB針對自研倚天芯片,從芯片到數(shù)據(jù)庫內(nèi)核全鏈路優(yōu)化,助力企業(yè)降本增效?;诎⒗镌谱匝械囊刑旆?wù)器,同時在數(shù)據(jù)庫引擎層、OS層、芯片層進行了全路徑優(yōu)化,最高降價

    2024年02月10日
    瀏覽(18)
  • ARM CPU架構(gòu)下Mysql數(shù)據(jù)庫通過Sysbench壓力測試

    ARM CPU架構(gòu)下Mysql數(shù)據(jù)庫通過Sysbench壓力測試

    寫到最前 ? ? ? ?這段本想寫到最后的,但是哥們?yōu)榱硕帱c粉絲把這個文章設(shè)置成了粉絲可見,所以在最前面這段我想談一下我本人對當(dāng)前國產(chǎn)信創(chuàng)要求以及ARM架構(gòu)服務(wù)器的看法。 ? ? ? ? 總的來說我對國產(chǎn)信創(chuàng)ARM服務(wù)器這條技術(shù)路線持絕對樂觀的態(tài)度。首先從服務(wù)器CPU算力

    2024年02月03日
    瀏覽(22)
  • spring boot shardingsphere mybatis-plus druid mysql 搭建mysql數(shù)據(jù)庫讀寫分離架構(gòu)

    spring boot shardingsphere mybatis-plus druid mysql 搭建mysql數(shù)據(jù)庫讀寫分離架構(gòu)

    ##關(guān)于window mysql主從搭建簡單教程 傳送門?window mysql5.7 搭建主從同步環(huán)境-CSDN博客 ##父pom.xml ##模塊pom.xml ##yml配置 ##mapper.xml ##TestMapper ##TestService ##TestController ##瀏覽器訪問 ##數(shù)據(jù)庫

    2024年01月21日
    瀏覽(26)
  • 使用Docker構(gòu)建的MySQL主從架構(gòu):高可用性數(shù)據(jù)庫解決方案

    MySQL主從架構(gòu),我們已經(jīng)在vmware虛擬機上實踐過了,接下來我們一起探討在docker中如何使用MySQL主從架構(gòu)。 ??個人主頁:我是沐風(fēng)曉月 ??個人簡介:大家好,我是沐風(fēng)曉月,阿里云社區(qū)博客專家???? ?? 座右銘: 先努力成長自己,再幫助更多的人 ,一起加油進步??????

    2024年02月08日
    瀏覽(16)
  • 基于java Swing 和 mysql實現(xiàn)的飛機訂票系統(tǒng)(源碼+數(shù)據(jù)庫+ppt+ER圖+流程圖+架構(gòu)說明+論文+運行視頻指導(dǎo))

    基于java Swing 和 mysql實現(xiàn)的飛機訂票系統(tǒng)(源碼+數(shù)據(jù)庫+ppt+ER圖+流程圖+架構(gòu)說明+論文+運行視頻指導(dǎo))

    本項目是一套基于java Swing 和 mysql實現(xiàn)的飛機訂票系統(tǒng),主要針對計算機相關(guān)專業(yè)的正在做畢設(shè)的學(xué)生與需要項目實戰(zhàn)練習(xí)的Java學(xué)習(xí)者。 包含:項目源碼、項目文檔、數(shù)據(jù)庫腳本等,該項目附帶全部源碼可作為畢設(shè)使用。 項目都經(jīng)過嚴(yán)格調(diào)試,確保可以運行! 技術(shù)棧:Jav

    2024年02月11日
    瀏覽(20)
  • 【MySQL 】MySQL 創(chuàng)建數(shù)據(jù)庫, MySQL 刪除數(shù)據(jù)庫,MySQL 選擇數(shù)據(jù)庫

    【MySQL 】MySQL 創(chuàng)建數(shù)據(jù)庫, MySQL 刪除數(shù)據(jù)庫,MySQL 選擇數(shù)據(jù)庫

    作者簡介: 辭七七,目前大一,正在學(xué)習(xí)C/C++,Java,Python等 作者主頁: 七七的個人主頁 文章收錄專欄: 七七的閑談 歡迎大家點贊 ?? 收藏 ? 加關(guān)注哦!???? 我們可以在登陸 MySQL 服務(wù)后,使用 create 命令創(chuàng)建數(shù)據(jù)庫,語法如下: 以下命令簡單的演示了創(chuàng)建數(shù)據(jù)庫的過程,

    2024年02月13日
    瀏覽(114)
  • 【MySQL數(shù)據(jù)庫】初識MySQL數(shù)據(jù)庫、安裝MySQL

    【MySQL數(shù)據(jù)庫】初識MySQL數(shù)據(jù)庫、安裝MySQL

    在今天的數(shù)字化世界中,數(shù)據(jù)是企業(yè)和個人的重要資產(chǎn)。管理和存儲數(shù)據(jù)變得至關(guān)重要,而 MySQL 數(shù)據(jù)庫是一種備受歡迎的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它提供了穩(wěn)定、可靠、高性能的數(shù)據(jù)存儲解決方案。本文將介紹 MySQL 數(shù)據(jù)庫的基本概念和安裝過程,以便初學(xué)者能夠輕松上

    2024年02月08日
    瀏覽(23)
  • 【MySQL數(shù)據(jù)庫】MySQL數(shù)據(jù)庫管理

    【MySQL數(shù)據(jù)庫】MySQL數(shù)據(jù)庫管理

    Structure Query Language(結(jié)構(gòu)化查詢語言)簡稱SQL,它被美國國家標(biāo)準(zhǔn)局(ANSI)確定為關(guān)系型數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn),后被國際化標(biāo)準(zhǔn)組織(ISO)采納為關(guān)系數(shù)據(jù)庫語言的國際標(biāo)準(zhǔn)。數(shù)據(jù)庫管理系統(tǒng)可以通過SQL管理數(shù)據(jù)庫;定義和操作數(shù)據(jù),維護數(shù)據(jù)的完整性和安全性。 數(shù)據(jù):(data)

    2024年02月08日
    瀏覽(49)
  • 初識MySQL數(shù)據(jù)庫——“MySQL數(shù)據(jù)庫”

    初識MySQL數(shù)據(jù)庫——“MySQL數(shù)據(jù)庫”

    各位CSDN的uu們你們好呀,小雅蘭好久沒有更文啦,確實是心有余而力不足,最近學(xué)習(xí)的內(nèi)容太難了,這篇博客又是小雅蘭的新專欄啦,主要介紹的是一些MySQL數(shù)據(jù)庫的知識點,下面,讓我們進入初識MySQL數(shù)據(jù)庫的世界吧 為什么要使用數(shù)據(jù)庫 數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng) MySQL介紹

    2024年02月06日
    瀏覽(18)
  • MySQL數(shù)據(jù)庫:數(shù)據(jù)庫管理系統(tǒng)與安裝MySQL數(shù)據(jù)庫

    MySQL數(shù)據(jù)庫:數(shù)據(jù)庫管理系統(tǒng)與安裝MySQL數(shù)據(jù)庫

    目錄 一、理論 1.數(shù)據(jù)庫管理系統(tǒng) 2.關(guān)系型數(shù)據(jù)庫 3.數(shù)據(jù)庫 4.MySQL數(shù)據(jù)庫 5.MySQL部署 二、實驗 1.yum安裝MySQL 2.編譯安裝MySQL 3.配置MySQL數(shù)據(jù)庫的Tab補全? 三、問題 1.數(shù)據(jù)庫登錄報錯 2.數(shù)據(jù)庫密碼復(fù)雜度報錯 3.數(shù)據(jù)庫連接報錯 四、總結(jié) (1)概念 數(shù)據(jù)庫管理系統(tǒng)(Database Management

    2024年02月12日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包