MySQL儲存引擎詳解

2021-10-02 15:40:16 字數 1178 閱讀 2917

一、mysql常用儲存引擎及特點

1、innodb儲存引擎

從mysql5.5版本之後,mysql的缺省內置儲存引擎已經是innodb了,他的主要特點有:

2、myisam儲存引擎

在5.5版本之前,myisam是mysql的預設儲存引擎,該儲存引擎併發性差,不支援事務,所以使用場景比較少,主要特點為:

(1)不支援事務;

(2)不支援外來鍵,如果強行增加外來鍵,不會提示錯誤,只是外來鍵不其作用;

(3)對資料的查詢快取只會快取索引,不會像innodb一樣快取資料,而且是利用作業系統本身的快取;

(4)預設的鎖粒度為表級鎖,所以併發度很差,加鎖快,鎖衝突較少,所以不太容易發生死鎖;

(5)支援全文索引(mysql5.6之後,innodb儲存引擎也對全文索引做了支援),但是mysql的全文索引基本不會使用,對於全文索引,現在有其他成熟的解決方案,比如:elasticsearch,solr,sphinx等。

(6)資料庫所在主機如果宕機,myisam的資料檔案容易損壞,而且難恢復;

3、memory儲存引擎

將資料存在記憶體中,和市場上的redis,memcached等思想類似,為了提高資料的訪問速度,主要特點:

(1)支援的資料型別有限制,比如:不支援text和blob型別,對於字串型別的資料,只支援固定長度的行,varchar會被自動儲存為char型別;

(2)支援的鎖粒度為表級鎖。所以,在訪問量比較大時,表級鎖會成為memory儲存引擎的瓶頸;

(3)由於資料是存放在記憶體中,所以在伺服器重啟之後,所有資料都會丟失;

(4)查詢的時候,如果有用到臨時表,而且臨時表中有blob,text型別的字段,那麼這個臨時表就會轉化為myisam型別的表,效能會急劇降低;

4、archive儲存引擎

archive儲存引擎適合的場景有限,由於其支援壓縮,故主要是用來做日誌,流水等資料的歸檔,主要特點:

(1)支援zlib壓縮,資料在插入表之前,會先被壓縮;

(2)僅支援select和insert操作,存入的資料就只能查詢,不能做修改和刪除;

(3)只支援自增鍵上的索引,不支援其他索引;

5、csv儲存引擎

資料中轉試用,主要特點:

(1)其資料格式為.csv格式的文字,可以直接編輯儲存;

(2)匯入匯出比較方便,可以將某個表中的資料直接匯出為csv,試用excel辦公軟體開啟;

Mysql的MERGE儲存引擎詳解

merge 儲存引擎把一組 myisam 資料表當做乙個邏輯單元來對待,讓我們可以同時對他們進行查詢。構成乙個 merge 資料表結構的各成員 myisam 資料表必須具有完全一樣的表結構。每乙個成員資料表的資料列必須按照同樣的順序定義同樣的名字和型別,索引也必須按照同樣的順序和同樣的方式定義。假設...

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

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

mysql個儲存引擎 MySQL儲存引擎

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