MySQL 儲存引擎

2022-07-04 10:15:11 字數 1324 閱讀 6870

dbms使用儲存引擎進行資料的建立、查詢、更新、刪除操作。

不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎還可以獲得特定的功能。

mysql提供了多種儲存引擎,最常見的有3種。

mysql5.5之前的預設的儲存引擎,每個myisam在磁碟上儲存成三個檔案,檔名和表名相同,副檔名分別是

(1)frm檔案:儲存表的定義

(2)myd檔案:儲存表中的資料(記錄)

(3)myi檔案:儲存索引。索引儲存的是資料檔案的指標

特點適用場景

myisam支援三種不同的儲存格式

(1)靜態表(fixed)

表中不能包含變長字段(比如varchar, blob, text),每個記錄都是固定的長度。如果myisam表中沒有乙個變長字段,則預設使用靜態表。

優點:儲存迅速,出現故障容易恢復

缺點:占用空間比動態表大。靜態表在進行資料儲存時會按照事先定義的列寬補足空格,但在訪問的時候會去掉補的空格

(2)動態表(dynamic)

可包含變長字段(varchar、blob、text),如果乙個myisam表包含任何可變長度的字段,或者該錶建立時用row_format=dynamic指定,則該錶使用動態格式儲存

優點:占用空間小

缺點:頻繁的更新、刪除操作會產生碎片,需要定期用optimize table語句或myisamchk -r命令來改善效能,出現故障後較難恢復

(3)壓縮表

由myisampack工具建立,每條記錄都會被單獨壓縮,佔據硬碟空間極小。

mysql5.5及其之後預設的儲存引擎

innodb有2種儲存方式

特點適用場景

可以在join查詢中混用innodb引擎的表、其他引擎的表

(1)鎖粒度不同,innodb為行級鎖,myisam為表級鎖

(2)innodb支援外來鍵,myisam不支援

(3)innodb支援事務,myisam不支援

(4)innodb快取查詢到的索引、資料,myisam只快取索引

(5)查詢效率myisam遠高於innodb,尤其是在資料表行數多的時候

(7)myisam的表檔案包括:.frm(表定義),.myi(索引),.myd(資料),innodb的表檔案為.frm(表定義),.ibd(索引、資料)

一句話,myisam效率更高、速度更快,innodb功能更全、安全性更好、開銷更大。

資料(記錄)不是儲存在檔案中,而是儲存在記憶體中。每個memory表對應乙個.frm檔案(表定義、索引)。

特點適用場景

乙個資料庫中,不同的表可以使用不同的儲存引擎。

使用合適的儲存引擎,會提高資料庫的效能。

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...

mysql個儲存引擎 MySQL儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...

mysql儲存引擎模式 mysql儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...