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

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中根據(jù)不同條件來統(tǒng)計、匯總數(shù)據(jù)的操作實例

    Mysql中根據(jù)不同條件來統(tǒng)計、匯總數(shù)據(jù)的操作實例

    在網(wǎng)站開發(fā)的過程中,經(jīng)常會用到數(shù)據(jù)統(tǒng)計功能,因此條件計數(shù)查詢便是不可避免的,這篇文章主要介紹了Mysql中根據(jù)不同條件來統(tǒng)計、匯總數(shù)據(jù)的操作實例,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10
  • mysql實現(xiàn)merge into問題

    mysql實現(xiàn)merge into問題

    文章介紹了在數(shù)據(jù)庫操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`語句進行數(shù)據(jù)更新和插入操作,如果不想創(chuàng)建唯一性索引,可以通過存儲過程實現(xiàn),文章通過實驗和驗證,展示了這兩種方法的實際效果
    2024-12-12
  • 在linux中導(dǎo)入sql文件的方法分享(使用命令行轉(zhuǎn)移mysql數(shù)據(jù)庫)

    在linux中導(dǎo)入sql文件的方法分享(使用命令行轉(zhuǎn)移mysql數(shù)據(jù)庫)

    為使用阿里云主機,沒有裝ftp,也沒有裝phpmyadmin,所以一切都得靠命令行。轉(zhuǎn)移網(wǎng)站的重要一步就是轉(zhuǎn)移數(shù)據(jù)庫,這里簡單介紹一下如何在這種情況下導(dǎo)入sql文件
    2014-02-02
  • 關(guān)于MySQL的sql_mode合理設(shè)置詳解

    關(guān)于MySQL的sql_mode合理設(shè)置詳解

    這篇文章主要給大家介紹了關(guān)于MySQL的sql_mode合理設(shè)置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • SQL SERVER 日期格式轉(zhuǎn)換詳解

    SQL SERVER 日期格式轉(zhuǎn)換詳解

    本篇文章是對SQL SERVER 日期格式轉(zhuǎn)換進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL判別InnoDB表是獨立表空間還是共享表空間的方法詳解

    MySQL判別InnoDB表是獨立表空間還是共享表空間的方法詳解

    這篇文章主要給大家介紹了關(guān)于MySQL判別InnoDB表是獨立表空間還是共享表空間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • MySQL外鍵約束(FOREIGN KEY)的具體使用

    MySQL外鍵約束(FOREIGN KEY)的具體使用

    MySQL外鍵約束是表的一個特殊字段,經(jīng)常與主鍵約束一起使用,本文主要介紹了MySQL外鍵約束(FOREIGN KEY)的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • MySQL中使用MD5加密的實現(xiàn)

    MySQL中使用MD5加密的實現(xiàn)

    本文主要介紹了MySQL中使用MD5加密的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • mysql的存儲過程、游標(biāo) 、事務(wù)實例詳解

    mysql的存儲過程、游標(biāo) 、事務(wù)實例詳解

    這篇文章主要介紹了mysql的存儲過程、游標(biāo) 、事務(wù)實例詳解的相關(guān)資料,這里舉實例說明MySQL 存儲過程與游標(biāo)和事務(wù),需要的朋友可以參考下
    2017-08-08
  • mysql使用 performance_schema 進行性能監(jiān)控

    mysql使用 performance_schema 進行性能監(jiān)控

    MySQL5.7及以上版本引入的performance_schema是一個高效的性能監(jiān)控工具,替代了舊的SHOWPROFILES,它通過系統(tǒng)表實時收集SQL執(zhí)行、鎖等待、I/O等性能數(shù)據(jù),提供了詳細(xì)的監(jiān)控功能,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2026-03-03

最新評論

肇源县| 仲巴县| 咸阳市| 焉耆| 兴化市| 吴江市| 郎溪县| 灵石县| 咸宁市| 三都| 历史| 广宁县| 河北区| 周口市| 潞西市| 双城市| 东兴市| 佛山市| 昌黎县| 嘉祥县| 宣恩县| 南京市| 望都县| 佛教| 二手房| 合水县| 惠水县| 辰溪县| 海门市| 黔西县| 安达市| 丘北县| 高邮市| 亚东县| 凤城市| 大新县| 清原| 伊金霍洛旗| 如东县| 来凤县| 谢通门县|