2012-10-16 34 views
-5

我想知道什麼是更好的做法(和更好的性能明智):MySQL的多個查詢或外鍵(表關係)

使用1臺多個外鍵多(所以當我取的對象是一個更大的對象幷包含使用關係的所有其他表信息),或者從表中獲取對象,然後執行另一個查詢以獲取其餘數據。

+3

這是不可能的。外鍵不是「表現」的東西,它們是數據完整性的東西。設計數據庫時不應考慮性能。建立一個正確的,規範化的數據庫,如果性能是一個問題,開始擔心如何去規範化它。 – meagar

+1

這不是關於非規範化;這基本上是'我應該使用連接'的問題嗎? – raina77ow

+0

@meagar - 是的 - 除非反規範化不應該是性能的第一個想法。 – Randy

回答

2

通常取決於您從多個表中獲取哪些列的頻率。

1.如果您在表中創建了許多外鍵,然後將這些鍵連接到其他許多鍵,那麼您最終將加入許多表來獲取所需的數據。

2.因此,我建議您首先確定您主要查看的主要數據類型以及您使用頻率的頻率。

3.您也需要在所有連接鍵上創建索引,以獲得更好的性能。這是一種方式開銷,並以其他方式節省您的時間。

所以這一切都取決於您的需求。

+0

謝謝,我想回答我的問題是:「首先確定你主要從這張主表看到什麼類型的數據,以及你使用它的頻率如何」...... :) –

+0

cool thats great.yw – AnandPhadke