Mysql
在 MyISAM 和 InnoDB 之間進行選擇 - 具有相關表的兩台伺服器
我不想犯錯。
我即將把我的網站上線,我承認我還沒有考慮過選擇哪個 MySQL 引擎:MyISAM 或 InnoDB。
我在這里和那裡讀到現在應該首選 InnoDB。MySQL 版本為 5.1.63。
上下文:兩台 MySQL 伺服器
serv1
和serv2
.
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,比如行級鎖定(因為你會做很多刪除)。如果您決定將這兩個相關的表放在同一個數據庫中,您可以添加外鍵。
希望有幫助。