2012-10-25 21 views
0

我有5個關係表等MySQL的性能&指數

ID | FK_USER | FK_POST | DATE 

它是針對每種類型的關係的更快和有效的用戶單獨的表,或僅創建一個表等

ID | FK_USER | FK_POST | TYPE | DATE 

其中類型是一個枚舉,我把一個INDEX類型?

假設我搜索關於「訂閱」(這是我的關係類型之一)使用單獨的表並在其上搜索,或使用組合表並將「where TYPE = 1」添加到查詢字符串更快?

+1

不要遭受過早優化,做任何有意義的。 –

+0

但有1200萬行,它不會改變任何性能 – halilenver

+1

號。如果您使用適當的索引,效果可以忽略不計,它可以沿着_either_方向進行(更深的BTREE + 0.1ms,但更可能被緩存-10ms或不是-0ms ...) –

回答

0

最好在'Type'上有一個帶有where子句的組合表。無論使用哪種方式存儲數據,性能都沒有太大差別。但是,如果你有單獨的表格,將來如果要添加新類型,則必須創建另一個表格。這將增加您的數據管理頭痛。