MySQL數據庫表MyISAM與InnoDB類型有何區別?對比選擇哪個好

  • MySQL的 中創建表時,可以選擇存儲引擎。
  • 有幾種不同的存儲引擎,但最常用的是MyISAM 和InnoDB,它們都是不同 MySQL的 版本的默認存儲引擎。
  • 如果創建表時沒有指定存儲引擎,則使用MySQL 版本的默認引擎。
  • 在MySQL 5.5.5 之前的版本中,MyISAM 是默認值,但在5.5.5 之後的版本中,InnoDB 是默認值。

MySQL資料庫表MyISAM與InnoDB類型有何不同?優缺點分析

MySQL數據庫MyISAM類型和InnoDB類型的區別

  • InnoDB 較新,MyISAM 較舊。
  • InnoDB 更複雜,而MyISAM 更簡單。
  • InnoDB 對數據完整性更嚴格,而MyISAM 更寬鬆。
  • InnoDB 為插入和更新實現行級鎖定,而MyISAM 實現表級鎖定。
  • InnoDB 有事務,MyISAM 沒有。
  • InnoDB 有外鍵和關係限制,而MyISAM 沒有。
  • InnoDB 具有更好的崩潰恢復能力,而MyISAM 在系統崩潰時無法恢復數據完整性。
  • MyISAM 有全文搜索索引,而InnoDB 沒有。

InnoDB類型優點

InnoDB 應該優先考慮數據完整性,因為它通過關係約束和事務處理數據完整性。

在寫入密集型(插入、更新)表中更快,因為它利用行級鎖定並且只保留對插入或更新的同一行的更改。

InnoDB類型缺點

  • 因為InnoDB 要處理不同的表之間的關係,所以數據庫管理員和模式創建者需要花費更多的時間來設計比MyISAM 更複雜的數據模型。
  • 消耗更多系統資源,例如RAM。
  • 事實上,很多人建議在安裝MySQL 後,如果你不需要它,就關閉InnoDB 引擎。
  • 沒有全文索引

MyISAM優點

  • 設計和創建更簡單,因此更適合初學者。
  • 不用擔心表之間的外部關係。
  • 由於結構更簡單且服務器資源成本更低,總體上比InnoDB 更快。
  • 全文索引。
  • 特別適用於讀取密集型(選擇)表。

MyISAM類型缺點

  • 沒有數據完整性(例如,關係約束)檢查,這增加了數據庫管理員和應用程序開發人員的責任和開銷。
  • 不支持在銀行等關鍵數據應用程序中必不可少的交易。
  • 對於頻繁插入或更新的表,它比InnoDB 慢,因為整個表都被鎖定以進行任何插入或更新。

MyISAM類型對比InnoDB類型,對比選擇哪個好?

InnoDB 更適合需要頻繁插入和更新的數據危急情況。

另一方面,MyISAM 在不太依賴數據完整性的應用程序中表現更好,通常只選擇和顯示數據。

  1. 如果需要支持事務,就選擇InnoDB,不需要事務就選擇MyISAM。
  2. 如果大部分錶操作都是查詢,選擇MyISAM,讀寫選擇InnoDB。
  3. 如果系統崩潰導致數據難以恢復且成本高,請不要選擇MyISAM。

一位用WordPress建站的網友,有一天無意間發現資料庫還挺大的,但這個網站只有不到10篇文章,這麼大的資料庫毫無意義。

然後開始找原因,發現phpMyAdmin後台的資料庫類型和其他WordPress網站不一樣。

該站點屬於InnoDB 類型,而其他WordPress 站點屬於MyISAM 類型。

InnoDB 類型會導致數據庫大小擴大數倍,所以網友決定從InnoDB 類型轉換為MyISAM 類型 

點擊下方鏈接,了解phpMyAdmin如何將InnoDB數據表類型轉換修改成MyISAM默認引擎▼

發表評論

您的郵箱地址不會被公開。必填項已用*標註

回到頁首