MySQL儲存引擎

2022-07-10 08:45:14 字數 1814 閱讀 3027

儲存引擎就是儲存資料,建立索引,更新查詢資料等等技術的實現方式 。儲存引擎是基於表的,而不是基於庫的。所以儲存引擎也可被稱為表型別。

和大多數的資料庫不同, mysql中有乙個儲存引擎的概念, 針對不同的儲存需求可以選擇最優的儲存引擎。

oracle,sqlserver等資料庫只有一種儲存引擎。mysql提供了外掛程式式的儲存引擎架構。所以mysql存在多種儲存引擎,可以根據需要使用相應引擎,或者編寫儲存引擎。

mysql5.0支援的儲存引擎包含 : innodb 、myisam 、bdb、memory、merge、example、ndb cluster、archive、csv、blackhole、federated等,其中innodb和bdb提供事務安全表, 其他儲存引擎是非事務安全表。

可以通過指定 show engines , 來查詢當前資料庫支援的儲存引擎 :

建立新錶時如果不指定儲存引擎,那麼系統就會使用預設的儲存引擎,mysql5.5之前的預設儲存引擎是myisam,5.5之後就改為了innodb。

檢視mysql資料庫預設的儲存引擎 , 指令 :

show variables like

'%storage_engine%

'

下面對比一下幾種常見的儲存引擎:

而其中innodb、mysam、memory最為常見

引擎說明

innodb

提供對資料庫 acid 事務的支援,同時提供了行級鎖和外來鍵的約束,其設計目標是處理大資料

mysam

預設引擎,不提供事務的支援,也不支援行級鎖和外來鍵

memory

所有資料均存於記憶體,訪問速度快,但是安全性低

innodb

innodb儲存引擎是mysql的預設儲存引擎。innodb儲存引擎提供了具有提交、回滾、崩潰恢復能力的事務安全。但是對比myisam的儲存引擎,innodb寫的處理效率差一些,並且會占用更多的磁碟空間以保留資料和索引。

四大特性:

儲存方式:

innodb 儲存表和索引有以下兩種方式 :

①. 使用共享表空間儲存, 這種方式建立的表的表結構儲存在.frm檔案中, 資料和索引儲存在 innodb_data_home_dir 和 innodb_data_file_path定義的表空間中,可以是多個檔案。

②. 使用多表空間儲存, 這種方式建立的表的表結構仍然存在 .frm 檔案中,但是每個表的資料和索引單獨儲存在 .ibd 中。

myisam

myisam 不支援事務、也不支援外來鍵,其優勢是訪問的速度快,對事務的完整性沒有要求或者以select、insert為主的應用基本上都可以使用這個引擎來建立表 。

檔案儲存方式:

每個myisam在磁碟上儲存成3個檔案,其檔名都和表名相同,但拓展名分別是 :

.frm (儲存表定義);

.myd(mydata , 儲存資料);

.myi(myindex , 儲存索引);

innodb vs mysam

兩者主要區別如下:

索引的選擇

在選擇儲存引擎時,應該根據應用系統的特點擊擇合適的儲存引擎。對於複雜的應用系統,還可以根據實際情況選擇多種儲存引擎進行組合。以下是幾種常用的儲存引擎的使用環境。

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

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

mysql個儲存引擎 MySQL儲存引擎

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

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

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