亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

二、存儲引擎

① 簡介及支持

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

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

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

SHOW ENGINES;

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

InnoDB

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

MyISAM

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

Memory

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

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

四、存儲引擎的選擇

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

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

注意:

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

ACID

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

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

相關(guān)文章

最新評論