2011-11-11 32 views
0

我有一個客戶,中間,項目類型的數據庫。MYsql中使用哪種數據庫引擎?

客戶可以購買許多商品,並將其存儲在「中間」表格中,僅有兩列customeriditemid

我目前對所有表使用myisam。

建議在此結構中使用Innodb作爲中間表嗎?

回答

1

我寧願的InnoDB在這種情況下,因爲:

的InnoDB適用於需要使用數據的完整性而來的優先級,因爲它本質上通過的關係約束的幫助照顧他們的和交易。 寫入密集型(插入,更新)表中的速度更快,因爲它利用行級鎖定,並只保留對插入或更新的同一行所做的更改。

雖然,

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

比較非常簡單。 InnoDB更適合需要頻繁插入和更新的數據緊急情況。另一方面,MyISAM在不太依賴數據完整性的應用程序中執行得更好,主要是選擇並顯示數據。

希望這會有所幫助。

0

INNODB支持foreign key constraints包括級聯刪除可以是非常有用在聯結表中有幫助。

級聯刪除(簡單地說)允許您的架構自行清理。

如果你結表使用外鍵約束使用級聯刪除,並刪除任何一個customeritem記錄,匹配​​middle記錄將被刪除,因此不會成爲孤立。

我肯定會推薦INNODB

+0

你會介意快速解釋級聯刪除嗎? – David19801

+0

@ David19801查看我的更新回答 – Phil

0

Innodb讓你定義很酷的foregin-keys。

從那裏,你將有一些特點:

  • foregin的鍵可以刪除根據DATAS太/更新。
  • 如果存在依賴關係,foregin-key可以拒絕刪除/更新。

通常情況下,使用foregin-keys會提前決定:那些foregin-key需要額外的代碼限制 - 也就是說,如果沒有客戶或項目,您可能無法插入中間代碼。

相關問題