2010-11-29 27 views
0

當我問到數據建模問題的正確方法時 - 使用一個或兩個表格 - 一些用戶回答說,自加入會帶來性能責任。這是真的給出的以下情形(MySQL數據庫):與多表連接相比,自連接是否會導致更高的性能損失?

  1. 該模型是一個問答&一個網站,問題和答案都存儲在同一個表,由TYPEID柱表示。
  2. 問題可以有很多答案;它可以被收藏,並被許多用戶投票。
  3. Q且由於有自己的意見

另一種方法是模擬題,答案,每一個在其各自的表意見,從而避免自我聯接。我尚未決定使用哪種方法。雖然這個問題涉及到加入性能,但對這兩種用例的任何其他建議都將不勝感激。

感謝

回答

3

你應該把單獨的表中的問題和答案不是特別從性能的角度,而是因爲它們在邏輯上是不同的事物,否則,就會混亂。

從性能的角度來看,沒有什麼特別的理由說明爲什麼一個自連接會很慢 - 我懷疑你所想的問題是,如果你需要遞歸查詢哪一個在MySQL中很慢。

同樣關於性能您的設計意味着您的鑰匙由兩個字段組成,而不是一個,因爲您需要在條件中指定是否需要問題或答案。比較寬的按鍵需要更長的時間 - 這不是一個嚴重的問題,但它在某些情況下可能會有所不同。