如果事務期間斷電,InnoDB 和 MyISAM 表會發生什麼?

如果事務期間斷電,InnoDB 和 MyISAM 表會發生什麼?

我們有兩張MySQL表,一張是InnoDB,一張是MyISAM。如果我在兩個表上的單一事務中執行一大塊插入,並且中間斷電,那麼狀態會是什麼?

InnoDB和MyISAM表上新插入的資料會發生什麼情況?

答案1

Innodb 是一個事務資料庫,它將資料庫變更儲存在交易日誌檔案中,使用校驗和驗證,在崩潰或斷電後下次重新啟動時提交或回溯事務。

MyISAM 沒有事務系統來回滾不成功的事務提交。因此,資料庫損壞成為具有脆弱功能的脆弱伺服器的一個主要問題。

如果資料完整性和避免鎖爭用(innodb 行鎖與 myisam 表鎖)是必須的,那麼您可以選擇 Innodb。

答案2

我的理解(我不確定)是:

  • InnoDB將完全回滾交易。
  • MyISAM 將保留直到斷電時插入的所有資料。

相關內容