欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中的存儲引擎使用解讀

 更新時間:2025年08月27日 09:26:34   作者:Chicken Run  
文章簡述MySQL架構(gòu)四層:連接層處理通信,服務(wù)層執(zhí)行SQL及優(yōu)化,引擎層負(fù)責(zé)數(shù)據(jù)存儲,存儲層管理底層文件,主要對比InnoDB(支持事務(wù)、行鎖)、MyISAM(表鎖、讀寫分離)和Memory(內(nèi)存存儲、臨時表),并給出適用場景選擇建議

一、MySQL 架構(gòu)

連接層:

  • 最上層是一些客戶端和連接服務(wù),主要完成一些類似于連接處理、授權(quán)認(rèn)證、及相關(guān)的安全方案。
  • 服務(wù)器也會為每個安全接入的用戶端驗證它所具有的操作權(quán)限。

服務(wù)層:        

  • 第二層架構(gòu)主要完成大多數(shù)的核心服務(wù)功能,如SQL接口,并完成緩存的查詢,SQL的分析和優(yōu)化、部分內(nèi)置函數(shù)的執(zhí)行。
  • 所有跨存儲引擎的功能也在這一層實現(xiàn),如:過程、函數(shù)等。

引擎層:        

  • 存儲引擎真正的負(fù)責(zé)了MySQL中數(shù)據(jù)的存儲和提取,服務(wù)器通過API和存儲引擎進行通信。
  • 不同的存儲引擎具備不同的功能,因此我們可根據(jù)自己的需要,選取合適的存儲引擎來使用。

存儲層:

  • 主要是將數(shù)據(jù)存儲在文件系統(tǒng)之上,并完成與存儲引擎的交互。

二、存儲引擎(介紹、操作)

存儲引擎就是存儲數(shù)據(jù)、建立索引、更新 / 查詢數(shù)據(jù)等技術(shù)的實現(xiàn)方式。

存儲引擎是基于表的,而不是基于庫的,所以存儲引擎也可稱為表類型。(MySQL5.5 之后默認(rèn)的存儲引擎 —— InnoDB

查詢當(dāng)前數(shù)據(jù)庫的存儲引擎

SHOW ENGINES;

?

在創(chuàng)建表時指定存儲引擎

#語法
-- 建表語句末尾使用ENGINE關(guān)鍵字,指定存儲引擎。
CREATE TABLE 表名(
	字段1 字段1類型 [COMMENT 字段1注釋],
    字段2 字段2類型 [COMMENT 字段2注釋],
    字段3 字段3類型 [COMMENT 字段3注釋],
    ...
    字段n 字段n類型 [COMMENT 字段n注釋]
)ENGINE = INNODB [COMMENT 表注釋];


#演示:
-- 創(chuàng)建表testE、字段有id、name
-- 指定使用MEMORY存儲引擎
CREATE TABLE testE(
id INT,
NAME VARCHAR(15)
)ENGINE = MEMORY;

三、InnoDB、MyISAM、Memory對比、選擇

1、InnoDB存儲引擎

InnoDB是一種兼顧高可靠性和高性能的通用存儲引擎,在MySQL 5.5 之后,InnoDB作為MySQL的默認(rèn)存儲引擎。

特點:

  • DML操作遵循ACID模型,支持事務(wù);
  • 行級鎖,提高并發(fā)訪問性能;
  • 支持外鍵 FOREIGN KEY 約束,保證數(shù)據(jù)完整性和正確性;

文件:

xxx.idb:xxx為表名,InnoDB引擎的每張表都會對應(yīng)這樣一個表空間文件,來存儲表的表結(jié)構(gòu)(frm文件、sdi文件)、數(shù)據(jù)和索引。

參數(shù):innodb_file_per_table

-- 查看參數(shù)innodb_file_per_table開啟狀態(tài)
SHOW VARIABLES LIKE 'innodb_file_per_table';
-- ON就表示開啟:每張表都會對應(yīng)這樣一個表空間文件

InnoDB邏輯存儲結(jié)構(gòu):

?

2、MyISAM存儲引擎

MyISAM存儲引擎是MySQL早期的默認(rèn)存儲引擎。

特點:

  • 不支持事務(wù),不支持外鍵;
  • 支持表鎖,不支持行鎖;
  • 訪問速度快;

文件:

  • xxx.sdi文件:存儲表結(jié)構(gòu)信息
  • xxx.MYD文件:存儲數(shù)據(jù)
  • xxx.MYI文件:存儲索引

3、Memory存儲引擎

Memory存儲引擎的表數(shù)據(jù)存儲在內(nèi)存中,由于受硬件問題、或斷電問題的影響,只能將這些表作為臨時表或緩存使用。

特點:

  • 內(nèi)存存放,存取速度快
  • 支持hash索引(默認(rèn))

文件:

  • xxx.sdi文件:存儲表結(jié)構(gòu)信息

4、對比與選擇

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

?

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql多層子查詢示例代碼(收藏夾案例)

    Mysql多層子查詢示例代碼(收藏夾案例)

    這篇文章主要介紹了Mysql多層子查詢示例代碼,以收藏夾案例給大家詳細介紹,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Navicat連接mysql報錯2003(10060)的解決方法

    Navicat連接mysql報錯2003(10060)的解決方法

    本來好好的navicat連接數(shù)據(jù)庫,突然間今天就打不開數(shù)據(jù)庫了,下面這篇文章主要給大家介紹了關(guān)于Navicat連接mysql報錯2003(10060)的解決方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • windows下MySQL免安裝版配置教程mysql-5.6.51-winx64.zip版本(最新安裝教程)

    windows下MySQL免安裝版配置教程mysql-5.6.51-winx64.zip版本(最新安裝教程)

    這篇文章主要介紹了windows下MySQL免安裝版配置教程mysql-5.6.51-winx64.zip版本(最新安裝教程),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享

    MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享

    Mysql參數(shù)優(yōu)化對于新手來講,是比較難懂的東西,其實這個參數(shù)優(yōu)化,是個很復(fù)雜的東西,對于不同的網(wǎng)站,及其在線量,訪問量,帖子數(shù)量,網(wǎng)絡(luò)情況,以及機器硬件配置都有關(guān)系,優(yōu)化不可能一次性完成,需要不斷的觀察以及調(diào)試,才有可能得到最佳效果。
    2011-09-09
  • MySQL如何改變表的存儲引擎方式

    MySQL如何改變表的存儲引擎方式

    這篇文章主要介紹了MySQL如何改變表的存儲引擎方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Mysql用戶權(quán)限分配實戰(zhàn)項目詳解

    Mysql用戶權(quán)限分配實戰(zhàn)項目詳解

    用戶是數(shù)據(jù)庫的使用者和管理者,MySQL通過用戶的設(shè)置來控制數(shù)據(jù)庫操作人員的訪問與操作范圍,這篇文章主要給大家介紹了關(guān)于Mysql用戶權(quán)限分配實戰(zhàn)項目的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • MySQL遷移KingbaseESV8R2的實現(xiàn)步驟

    MySQL遷移KingbaseESV8R2的實現(xiàn)步驟

    本文主要介紹了MySQL遷移KingbaseESV8R2的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL?Community?Server?8.0.29安裝配置方法圖文教程

    MySQL?Community?Server?8.0.29安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了MySQL?Community?Server?8.0.29安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • MySQL動態(tài)創(chuàng)建表,數(shù)據(jù)分表的存儲過程

    MySQL動態(tài)創(chuàng)建表,數(shù)據(jù)分表的存儲過程

    MySQL動態(tài)創(chuàng)建表,數(shù)據(jù)分表的存儲過程,需要的朋友可以參考下。
    2011-08-08
  • MySql 8.0及對應(yīng)驅(qū)動包匹配的注意點說明

    MySql 8.0及對應(yīng)驅(qū)動包匹配的注意點說明

    這篇文章主要介紹了MySql 8.0及對應(yīng)驅(qū)動包匹配的注意點說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論