2017-08-26 81 views

回答

1

MyISAM存儲引擎顯然是被淘汰了,我希望它最終會從MySQL中刪除。

如果你想繼續升級到較新版本的MySQL,你應該設計你的數據庫到從來沒有使用MyISAM。

MyISAM不支持任何以下內容:

  • ACID屬性
  • 外鍵
  • 交易
  • 聚集索引
  • 行級鎖定
  • 併發更新
  • 崩潰恢復
  • 數據緩存(只有索引被緩存;數據由filesytem)
  • 分區(在MySQL 8.0)

的MyISAM是MySQL的工程團隊接受沒有改善,因爲據我所知緩存。

自MySQL 5.7起,MyISAM仍然用於mysql.*架構中的授權表,但在8.0中,這些表都存儲在InnoDB中。

在我上一個項目中,我只使用MyISAM只有一個表。該表存儲了50億行,並且需要將其存儲在磁盤空間有限的服務器上,而無需升級的計劃或預算。 MyISAM將此表存儲在比InnoDB空間大一半的空間中(根據數據類型,索引和其他因素,您的情況可能會得到不同的存儲比率)。使用MyISAM,我可以將此表存儲在服務器上,直到它可以升級。使用InnoDB,表格會過大。

相關問題