Mysql

在 MyISAM 和 InnoDB 之間進行選擇 - 具有相關表的兩台伺服器

  • February 14, 2013

我不想犯錯。

我即將把我的網站上線,我承認我還沒有考慮過選擇哪個 MySQL 引擎:MyISAM 或 InnoDB。

我在這里和那裡讀到現在應該首選 InnoDB。MySQL 版本為 5.1.63。

上下文:兩台 MySQL 伺服器serv1serv2.

  • serv1: 一張具有唯一 ID 的表。呼叫此表daddy
  • serv2: 一張表child,其 id 與daddy’s 相同。

我必須使用 的欄位更新(並且僅此)我daddy的欄位child,其中 id 是相同的。索引位於對查詢很重要的列上。

那麼,為了最大限度地發揮性能,我應該堅持使用 MyISAM 還是轉換為 InnoDB?我仍然可以這樣做,因為數據庫是空的。

就我而言,每百分之一秒都值一百萬美元:D(當然純屬玩笑)

你能啟發我嗎?

“MyISAM 比 InnoDB 快”——這是一個老婦人的故事。它曾經是正確的。現在它有些不正確。

在更新期間進行選擇——MyISAM通常足夠快,所以這不是問題,但 InnoDB通常根本不會阻塞。使用 InnoDB。

電源故障——InnoDB 自動恢復。

您在談論兩個“伺服器”-您是指兩台不同的電腦嗎?還有兩個不同的mysqld實例?沒有什麼可以讓他們互相交談。(好的,有複製和聯合,但聽起來你並不喜歡這些。)

如果您真的是指單個 MySQL 實例上的“數據庫”或“表”,那麼請說明。表(即使在不同的數據庫中)可以為大多數操作加入。

您是否考慮過在數據庫為空時從 5.1 升級?

您沒有聲明任何強制您使用 innodb 的充分理由(因為您不會在兩個數據庫之間使用參照完整性等)。

MyISAM 通常以比 innodb 更快而聞名。

我猜你會發現其他原因更喜歡 innodb,比如行級鎖定(因為你會做很多刪除)。如果您決定將這兩個相關的表放在同一個數據庫中,您可以添加外鍵。

希望有幫助。

引用自:https://dba.stackexchange.com/questions/28020