MySQL常用的儲存引擎

2021-06-05 18:32:34 字數 1148 閱讀 2622

mysql常用的儲存引擎為myisam、innodb、memory、merge,其中innodb提供事務安全表,其他儲存引擎都是非事務安全表。

myisam是mysql的預設儲存引擎。myisam不支援事務、也不支援外來鍵,但其訪問速度快,對事務完整性沒有要求。

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

memory儲存引擎使用存在記憶體中的內容來建立表。每個memory表只實際對應乙個磁碟檔案。memory型別的表訪問非常得快,因為它的資料是放在記憶體中的,並且預設使用hash索引。但是一旦服務關閉,表中的資料就會丟失掉。

merge儲存引擎是一組myisam表的組合,這些myisam表必須結構完全相同。merge表本身沒有資料,對merge型別的表進行查詢、更新、刪除的操作,就是對內部的myisam表進行的。

myisam表還支援3中不同的儲存格式:

1 靜態表

2 動態表

3 壓縮表

靜態表是預設的儲存格式,靜態表中的字段都是非變長的字段,優點是:儲存非常迅速,容易快取,出現故障容易恢復;缺點是:占用的空間通常比動態表多。(注意: 在儲存時,列的寬度不足時,用空格補足,當時在訪問的時候並不會得到這些空格)

動態表的字段是變長的,優點是:占用的空間相對較少,但是頻繁地更新刪除記錄會產生碎片,需要定期改善效能,並且出現故障的時候恢復相對比較困難。

壓縮表占用磁碟空間小,每個記錄是被單獨壓縮的,所以只有非常小的訪問開支。

mysql支援外來鍵儲存引擎只有innodb,在建立外來鍵的時候,要求附表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引。

innodb儲存方式為兩種:1 使用共享表空間儲存 2 使用多表空間

memory型別的儲存引擎主要用於那些內容變化不頻繁的**表,或者作為統計操作的中間結果表,便於高效地堆中間結果進行分析並得到最終的統計結果。對memory儲存引擎的表進行更新操作要謹慎,因為資料並沒有實際寫入到磁碟中,所以一定要對下次重新啟動服務後如何獲得這些修改後的資料有所考慮。

merge用於將一系列等同的myisam表以邏輯方式組合在一起,並作為乙個物件引用它。merge表的優點在於可以突破對單個myisam表大小的限制,通過將不同的表分布在多個磁碟上,可以有效的改善merge表的訪問效率。

MYSQL常用儲存引擎

一 innodb 儲存引擎 innodb 儲存引擎自 mysql 5.5 版本起被指定為預設的儲存引擎,用於完成事務 回滾 崩潰修復和多版本併發控制的事務安全處理。同時也是 mysql中第乙個提供外來鍵約束的表引擎,尤其對事務處理的能力,是 mysql 其他儲存引擎所無法與之比擬的。innodb 的...

常用Mysql儲存引擎

innodb是事務型資料庫的首選引擎,支援事物安全表 acid 支援行鎖定和外來鍵。mysql5.5.5之後,innodb作為預設引擎。innodb主要特性 1.innodb給mysql提供 回滾和崩潰恢復能力的事物安全 acid相容 儲存引擎。innodb鎖定在行級並且也在select語句中提供乙...

常用的Mysql儲存引擎

下述儲存引擎是最常用的 myisam 預設的mysql外掛程式式儲存引擎,它是在web 資料倉儲和其他應用環境下最常使用的儲存引擎之一。注意,通過更改storage engine配置變數,能夠方便地更改mysql伺服器的預設儲存引擎。innodb 用於事務處理應用程式,具有眾多特性,包括acid事務...