我有一個客戶,中間,項目類型的數據庫。MYsql中使用哪種數據庫引擎?
客戶可以購買許多商品,並將其存儲在「中間」表格中,僅有兩列customerid
和itemid
。
我目前對所有表使用myisam。
建議在此結構中使用Innodb作爲中間表嗎?
我有一個客戶,中間,項目類型的數據庫。MYsql中使用哪種數據庫引擎?
客戶可以購買許多商品,並將其存儲在「中間」表格中,僅有兩列customerid
和itemid
。
我目前對所有表使用myisam。
建議在此結構中使用Innodb作爲中間表嗎?
我寧願的InnoDB在這種情況下,因爲:
的InnoDB適用於需要使用數據的完整性而來的優先級,因爲它本質上通過的關係約束的幫助照顧他們的和交易。 寫入密集型(插入,更新)表中的速度更快,因爲它利用行級鎖定,並只保留對插入或更新的同一行所做的更改。
雖然,
的MyISAM是簡單的設計和創造,從而爲初學者更好。 不用擔心表格之間的外部關係。由於結構更簡單,因此服務器資源的成本更低,因此總體上比InnoDB更快。 全文索引。 特別適合讀密集(選擇)表格。
比較非常簡單。 InnoDB更適合需要頻繁插入和更新的數據緊急情況。另一方面,MyISAM在不太依賴數據完整性的應用程序中執行得更好,主要是選擇並顯示數據。
希望這會有所幫助。
INNODB支持foreign key constraints包括級聯刪除可以是非常有用在聯結表中有幫助。
級聯刪除(簡單地說)允許您的架構自行清理。
如果你結表使用外鍵約束使用級聯刪除,並刪除任何一個customer
或item
記錄,匹配middle
記錄將被刪除,因此不會成爲孤立。
我肯定會推薦INNODB
Innodb讓你定義很酷的foregin-keys。
從那裏,你將有一些特點:
通常情況下,使用foregin-keys會提前決定:那些foregin-key需要額外的代碼限制 - 也就是說,如果沒有客戶或項目,您可能無法插入中間代碼。
你會介意快速解釋級聯刪除嗎? – David19801
@ David19801查看我的更新回答 – Phil