Mysql儲存引擎小析

2021-06-28 10:20:10 字數 1795 閱讀 3658

一、簡介

mysql資料庫的儲存引擎是解決以上問題的有用特性,可以讓工程師在表級別根據不同的場景使用不同的儲存模式。最常用的包括如下三種模式:

1)myisam(isam:indexed sequence access method):用來支援讀頻率遠超過寫頻率的表,提供表級鎖,不支援事務。每張表使用不同的資料檔案。

2)innodb:用來支援高頻讀寫的表。本模式支援事務,行級所和外來鍵。innodb有兩種模式:共享表空間和多表空間(不同的錶用不同的表空間)

3)memory:用來支援很少被修改的表,比如字典表。memory實際就是記憶體表,每個memory表對應磁碟上的乙個表,如果修改了memroy表中的資料,不會更新到磁碟中

4)mrg_myisam:用來支援把多個相同結構的myisam表邏輯的組織起來,作為乙個整體對外提供資料,實際提供了多個表的乙個門面。

模式                             讀效率                    寫效率                   外來鍵                      事務                    鎖級別

myisam                       高                              低                     不支援                  不支援                     表

innodb                          較高                         較高                  支援                       支援                        行                            

memory                    很高                           高                     不支援                   不支援                  表

mrg_myisam          高                               低                      不支援                   不支援                  表

二、檢視mysql支援的儲存引擎模式

登入後,執行show engines命令,可以看到mysql當前支援的所有引擎,比如:

三、選擇使用儲存引擎模式

可以根據你的應用系統中不同的表的情況選擇使用不同的儲存引擎。

資料庫安裝後有乙個預設的儲存引擎模式,從上表中看出系統預設的儲存引擎模式為innodb。

可以在建立表時顯示的指定所使用的儲存引擎模式:

比如,如下的鍵表語句選擇使用memory儲存引擎模式:

create table `dict_head_info` (

`dictheadid` int(11) not null,

`dictheadname` varchar(64) not null,

primary key (`dictheadid`) ) engine=memory default charset=gbk;

如果不顯示的指定儲存引擎模式,則使用預設的儲存引擎模式(前表中的innodb)。

四、總結

當工程師們為了提高資料庫的訪問效能而優化核心引數,優化sql,甚至使用集群功能時,往往沒有認真的利用mysql所提供的儲存引擎,甚至使用儲存引擎時也僅僅時從別人的建表語句中拷過來,而沒有認真的思考使用場景,從而確定與使用場景對應的儲存引擎模式。我認為,在合理的資料庫設計的基礎上,要優先考慮針對不同的表選擇不同的儲存引擎模式。

mysql儲存引擎簡析

innodb 具有提交 回滾和崩潰恢復能力的事務安全 支援外來鍵。使用mvcc 以及行鎖來提供事務支援,因此支援高併發。適用於寫頻繁,併發率高的應用。myisam 不支援事務和災難自動恢復,但其訪問速度快,支援全文索引,對事務完整性沒有要求。通常用於讀頻繁的資料庫,如資料倉儲等。memory 使用存...

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

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

mysql個儲存引擎 MySQL儲存引擎

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