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介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...