MySQL 儲存引擎

2022-02-03 06:03:41 字數 3008 閱讀 2971

簡介

檢視

show engines; # 顯示可支援的儲存引擎

show table status [ db_name] [like 『pattern』|where expr

]; # 可顯示指定資料庫中指定表的狀態資訊

# 法一:

show table status like 『classes』;

# 法二:

show table status where name=』classes』\g

可通過檢視表的狀態資訊獲得表所使用的儲存引擎類別

修改預設儲存引擎

# 在配置檔案/etc/my.cnf中設定如下:

default_storage_engine = innodb

各儲存引擎及其特性innodb

支援事務:事務日誌;日誌檔案大小一致:如ib_logfile0和ib_logfile1

支援外來鍵

支援mvcc

支援聚簇索引

支援行級鎖:即間隙鎖

支援輔助索引

支援自適應hash索引

支援熱備份

不支援全文索引

myisam

支援全文索引

支援壓縮:用於實現資料倉儲,能節約儲存空間並提公升效能

支援空間索引

支援表級鎖:若讀寫操作比例為9:1或8:

2,則使用myisam可以提高效能

延遲更新索引:減少io壓力

不支援事務,外來鍵,mvcc,行級鎖等

崩潰後無法安全恢復資料

適用場景:多讀少寫的資料,較小的表,能夠容忍崩潰後的修改操作和資料丟失;

如自帶的mysql資料庫中的表都是使用myisam儲存引擎的

archive

僅支援insert和select

支援很好的壓縮功能

不支援事務,不能很好的支援索引

適用於:儲存日誌資訊,或其它按時間序列實現的資料採集類的應用,如監控日誌

csv12

將資料儲存為csv格式,不支援索引

僅適用於資料交換場景

blackhole12

沒有儲存機制,任何發往此引擎的資料都會丟棄

由於其會記錄二進位制日誌,故常用於多級複製架構中作中轉伺服器

memory12

34資料儲存在記憶體中,即是乙個記憶體表

僅支援hash索引,使用表級鎖

不支援blob和text資料型別

常用於儲存中間資料,如週期性的聚合資料等;也用於實現臨時表

mrg_myisam12

是myisam的乙個變種,能夠將多個myisam表合併為乙個虛表

屬於傳統的儲存引擎,一般不常用

ndb

1是mysql cluster中專用的儲存引擎,不常用

第三方的儲存引擎

xtradb

增強的innodb,由percona提供;
pbxt

mariadb自帶此儲存引擎

支援引擎級別的複製,外來鍵約束

支援事務,mvcc

對ssd磁碟提供適當支援

tokudb

使用fractal trees索引,效能很強

適用於儲存大資料,擁有很好的壓縮比

已被引入新版本的mariadb

列式儲存引擎

infobright

前身為maria,是增強版的myisam

支援崩潰後安全恢復

支援資料快取

其它列式儲存引擎

如 infinidb,monetdb,luciddb等
開源社群儲存引擎:

aria

前身為maria,是增強版的myisam

支援崩潰後安全恢復

支援資料快取

groona

全文索引引擎;

mroonga是基於groona的二次開發版

oqgraph

由open query研發,支援圖結構的儲存引擎
sphinxse

為sphinx全文搜尋伺服器提供了sql介面
spider

能將資料切分成不同的分片,比較高效透明的實現了分片(shard);

支援在分片上支援並行查詢

選擇儲存引擎可參考要素是否需要事務

備份的型別的支援(熱備或冷備)

崩潰後的恢復

特有的特性(如對ssd的支援等)

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

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

mysql個儲存引擎 MySQL儲存引擎

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

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

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