最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于MySQL的體系結(jié)構(gòu)及存儲(chǔ)引擎圖解

 更新時(shí)間:2023年05月22日 11:56:50   作者:自xing且樂觀~  
這篇文章主要介紹了關(guān)于MySQL的體系結(jié)構(gòu)及存儲(chǔ)引擎圖解,MySQL整體的邏輯結(jié)構(gòu)可以分為4層,客戶層、服務(wù)層、存儲(chǔ)引擎層、數(shù)據(jù)層,需要的朋友可以參考下

一、MySQL的體系結(jié)構(gòu)

① 結(jié)構(gòu)圖

② 各結(jié)構(gòu)的功能

連接層:最上層是一些客戶端和鏈接服務(wù),主要完成一些類似于連接處理、授權(quán)認(rèn)證、及相關(guān)的安全方 案。服務(wù)器也會(huì)為安全接入的每個(gè)客戶端驗(yàn)證它所具有的操作權(quán)限。
服務(wù)層:第二層架構(gòu)主要完成大多數(shù)的核心服務(wù)功能,如SQL接口,并完成緩存的查詢,SQL的分析 和優(yōu)化,部分內(nèi)置函數(shù)的執(zhí)行。所有跨存儲(chǔ)引擎的功能也在這一層實(shí)現(xiàn),如過程、函數(shù)等。
引擎層:存儲(chǔ)引擎真正的負(fù)責(zé)了MySQL中數(shù)據(jù)的存儲(chǔ)和提取,服務(wù)器通過API和存儲(chǔ)引擎進(jìn)行通信。 不同的存儲(chǔ)引擎具有不同的功能,這樣我們可以根據(jù)自己的需要,來選取合適的存儲(chǔ)引擎。
存儲(chǔ)層:主要是將數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)之上,并完成與存儲(chǔ)引擎的交互。

二、存儲(chǔ)引擎

① 簡(jiǎn)介及支持

② 建表時(shí),指定引擎

CREATE TABLE表名(
  字段1字段1類型[COMMENT字段1注釋],
  ...
  字段n字段n類型[COMMENT字段n注釋]
)ENGINE = INNODB [COMMENT表注釋];

查看當(dāng)前數(shù)據(jù)庫(kù)支持的引擎

SHOW ENGINES;

三、各存儲(chǔ)引擎的特點(diǎn)

InnoDB

介紹:
InnoDB是一種兼顧高可靠性和高性能的通用存儲(chǔ)引擎,在MySQL 5.5之后,InnoDB是默認(rèn)的MySQL存儲(chǔ)引擎。
特點(diǎn):
DML操作遵循ACID模型,支持事務(wù)﹔
行級(jí)鎖,提高并發(fā)訪問性能;
支持外鍵FOREIGN KEY約束,保證數(shù)據(jù)的完整性和正確性;
文件:
xxx.ibd: xxx代表的是表名,innoDB引擎的每張表都會(huì)對(duì)應(yīng)這樣一個(gè)表空間文件,存儲(chǔ)該表的表結(jié)構(gòu)(frm、sdi)、數(shù)據(jù)和索引。
參數(shù): innodb_file_per_table

MyISAM

介紹:
MylSAM是MySQL早期的默認(rèn)存儲(chǔ)引擎。
特點(diǎn):
不支持事務(wù),不支持外鍵;
支持表鎖,不支持行鎖訪問速度快
文件:
xxx.sdi:存儲(chǔ)表結(jié)構(gòu)信息
xxx.MYD:存儲(chǔ)數(shù)據(jù)
xxx.MYI:存儲(chǔ)索引

Memory

介紹:
Memory引擎的表數(shù)據(jù)時(shí)存儲(chǔ)在內(nèi)存中的,由于受到硬件問題、或斷電問題的影響,只能將這些表作為臨時(shí)表或緩存使用。
特點(diǎn):
內(nèi)存存放
hash索引(默認(rèn))
文件:
Xxx.sdi:存儲(chǔ)表結(jié)構(gòu)信息

對(duì)以上三種總結(jié):

四、存儲(chǔ)引擎的選擇

在選擇存儲(chǔ)引擎時(shí),應(yīng)該根據(jù)應(yīng)用系統(tǒng)的特點(diǎn)選擇合適的存儲(chǔ)引擎。對(duì)于復(fù)雜的應(yīng)用系統(tǒng),還可以根據(jù)實(shí)際情況選擇多種存儲(chǔ)引擎進(jìn)行組合。

  • InnoDB:是Mysql的默認(rèn)存儲(chǔ)引擎,支持事務(wù)、外鍵。如果應(yīng)用對(duì)事務(wù)的完整性有比較高的要求,在并發(fā)條件下要求數(shù)據(jù)的一致性,數(shù)據(jù)操作除了插入和查詢之外,還包含很多的更新、刪除操作,那么InnoDB存儲(chǔ)引擎是比較合適的選擇。
  • MyISAM:如果應(yīng)用是以讀操作和插入操作為主,只有很少的更新和刪除操作,并且對(duì)事務(wù)的完整性、并發(fā)性要求不是很高,那么選擇這個(gè)存儲(chǔ)引擎是非常合適的。
  • MEMORY:將所有數(shù)據(jù)保存在內(nèi)存中,訪問速度快,通常用于臨時(shí)表及緩存。MEMORY的缺陷就是對(duì)表的大小有限制,太大的表無法緩存在內(nèi)存中,而且無法保障數(shù)據(jù)的安全性。

注意:

  • DDL:數(shù)據(jù)定義語言:這些語句定義不同的數(shù)據(jù)段、數(shù)據(jù)庫(kù)、表、列、索引等數(shù)據(jù)庫(kù)對(duì)象。常用語句關(guān)鍵字主要包括create,drop,alter,truncate等
  • DML:數(shù)據(jù)操作語句:用于添加、刪除、更新和查詢數(shù)據(jù)庫(kù)記錄,并檢查數(shù)據(jù)完整性。常用語句關(guān)鍵字主要包括 insert,delete,update。
  • DCL數(shù)據(jù)控制語句(Data Control Language):用來授權(quán)或回收訪問數(shù)據(jù)庫(kù)的某種特權(quán),并控制數(shù)據(jù)庫(kù)操縱事務(wù)發(fā)生的時(shí)間及效果,能夠?qū)?shù)據(jù)庫(kù)進(jìn)行監(jiān)視。比如常見的授權(quán)、取消授權(quán)、回滾、提交等等操作。
  • DQL:數(shù)據(jù)查詢語言全稱是Data Query Language,是用來進(jìn)行數(shù)據(jù)庫(kù)中數(shù)據(jù)的查詢的,即最常用的select語句

ACID

原子性:是指事務(wù)是一個(gè)不可再分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。
一致性:是指在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫(kù)的完整性約束沒有被破壞。這是說數(shù)據(jù)庫(kù)事務(wù)不能破壞關(guān)系數(shù)據(jù)的完整性以及業(yè)務(wù)邏輯上的一致性。
隔離性:多個(gè)事務(wù)并發(fā)訪問時(shí),事務(wù)之間是隔離的,一個(gè)事務(wù)不應(yīng)該影響其它事務(wù)運(yùn)行效果。
持久性:意味著在事務(wù)完成以后,該事務(wù)所對(duì)數(shù)據(jù)庫(kù)所作的更改便持久的保存在數(shù)據(jù)庫(kù)之中,并不會(huì)被回滾。

到此這篇關(guān)于關(guān)于MySQL的體系結(jié)構(gòu)及存儲(chǔ)引擎圖解的文章就介紹到這了,更多相關(guān)MySQL體系結(jié)構(gòu)及存儲(chǔ)引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • navicat無法連接mysql的問題及解決方案

    navicat無法連接mysql的問題及解決方案

    文章講述了如何解決本地IP沒有訪問遠(yuǎn)程數(shù)據(jù)庫(kù)權(quán)限的問題,通過打開管理員窗口,登錄MySQL服務(wù)器,更新用戶權(quán)限,刷新權(quán)限并檢查是否成功來實(shí)現(xiàn)
    2025-10-10
  • 關(guān)于MySQL死鎖的產(chǎn)生原因、檢測(cè)與解決方式

    關(guān)于MySQL死鎖的產(chǎn)生原因、檢測(cè)與解決方式

    這篇文章主要介紹了關(guān)于MySQL死鎖的產(chǎn)生原因、檢測(cè)與解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • mysql?order?by?排序原理解析

    mysql?order?by?排序原理解析

    當(dāng)涉及到大量數(shù)據(jù)時(shí),對(duì)于?ORDER?BY?操作,可以考慮為相應(yīng)的列添加索引,如果不使用索引,mysql會(huì)使用filesort來進(jìn)行排序,這篇文章主要介紹了mysql?order?by?排序原理,需要的朋友可以參考下
    2024-02-02
  • MySQL查看數(shù)據(jù)庫(kù)、表和索引的容量大小的方法

    MySQL查看數(shù)據(jù)庫(kù)、表和索引的容量大小的方法

    在我們平時(shí)工作中,如果一個(gè)業(yè)務(wù)運(yùn)行很久了,可能會(huì)需要我們?nèi)タ纯催@塊業(yè)務(wù)產(chǎn)生的數(shù)據(jù)量有多大,比如這個(gè)業(yè)務(wù)所使用的數(shù)據(jù)庫(kù)存儲(chǔ)空間都使用了多少個(gè)G了,哪一張數(shù)據(jù)表才是大表,下面整理了一些可以拿來即用的SQL以供小伙伴們參考,需要的朋友可以參考下
    2025-09-09
  • MySQL 數(shù)據(jù)類型TINYINT、INT 和 BIGINT的區(qū)別及使用建議

    MySQL 數(shù)據(jù)類型TINYINT、INT 和 BIGINT的區(qū)別及使用建議

    TINYINT 適用于存儲(chǔ)小范圍整數(shù),INT 適用于大多數(shù)常見場(chǎng)景,BIGINT 適用于存儲(chǔ)非常大范圍的整數(shù),本文將詳細(xì)介紹這三種整數(shù)類型的區(qū)別、應(yīng)用場(chǎng)景和使用建議,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • mysql全量備份、增量備份實(shí)現(xiàn)方法

    mysql全量備份、增量備份實(shí)現(xiàn)方法

    這篇文章主要介紹了mysql全量備份、增量備份實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-12-12
  • Navicat連接遠(yuǎn)程服務(wù)器里docker中mysql的方法(已解決)

    Navicat連接遠(yuǎn)程服務(wù)器里docker中mysql的方法(已解決)

    相信大家都有在遠(yuǎn)程服務(wù)器上進(jìn)行開發(fā)吧,其中MySQL的使用率應(yīng)該也會(huì)挺高,這篇文章主要給大家介紹了關(guān)于Navicat連接遠(yuǎn)程服務(wù)器里docker中mysql的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • phpmyadmin顯示MySQL數(shù)據(jù)表“使用中” 修復(fù)后依然無效的解決方法

    phpmyadmin顯示MySQL數(shù)據(jù)表“使用中” 修復(fù)后依然無效的解決方法

    這篇文章主要介紹了phpmyadmin顯示MySQL數(shù)據(jù)表“使用中” 修復(fù)后依然無效的解決方法,需要的朋友可以參考下
    2014-07-07
  • mysql數(shù)據(jù)被誤刪的恢復(fù)方案以及預(yù)防措施

    mysql數(shù)據(jù)被誤刪的恢復(fù)方案以及預(yù)防措施

    這篇文章主要介紹了幾種常見的MySQL數(shù)據(jù)恢復(fù)方法,包括使用備份、二進(jìn)制日志、InnoDB表空間恢復(fù)以及第三方工具,每種方法都有其優(yōu)缺點(diǎn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • MySQL 的覆蓋索引與回表的使用方法

    MySQL 的覆蓋索引與回表的使用方法

    這篇文章主要介紹了MySQL 的覆蓋索引與回表的使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論

六盘水市| 门头沟区| 长武县| 三穗县| 灵川县| 太仓市| 樟树市| 枝江市| 乌苏市| 和平县| 台南市| 蒙城县| 沈丘县| 四会市| 玉溪市| 芒康县| 丰原市| 正蓝旗| 故城县| 林周县| 贵港市| 南岸区| 宜宾县| 什邡市| 会理县| 庆云县| 长海县| 凤城市| 东兰县| 富顺县| 徐水县| 南川市| 高唐县| 阿拉尔市| 肥乡县| 寿阳县| 天柱县| 新河县| 卓尼县| 台江县| 河东区|