2015-11-26 67 views
0

我不知道我該怎麼解釋這個。 所以我只是給你看這個例子。哪一個更有效率的一個文檔表或多個文檔表

A型

documents 
- board(varchar 30) : boardA | boardB | boardC 
- title(varchar 300) 
- content(longtext) 
... 

B型

boardA_documents 
- title(varchar 300) 
- content(longtext) 
... 

boardB_documents 
- title(varchar 300) 
- content(longtext) 
... 

boardC_documents 
- title(varchar 300) 
- content(longtext) 
... 

我認爲,A型可能會很慢,當被記錄非常多的文件。

但有人告訴我「這不是,它可以通過使用索引高效」。

所以我想知道哪個更有效率。

+0

搜索如果你知道比這兩種類型的更有效,請讓我知道這一點。 – WebEngine

+1

由於行數太多,肯定會輸入A.速度可能不成問題。你可以使用一個單獨的'boards'表和一個數字'board_id'標識符來保存它們。 –

回答

2

選項A更有效。

帶選項B您需要UNION才能將所有數據重新組合在一起。

附加提示。

  • 也許board_type是該領域一個更好的名字。
  • 不使用文本字段爲,而是創建INT board_type_id領域引用另一個表board_type與
    • 例如,如果你想爲boardAboardA.1你只需要改變一行更改名稱。

board_type_id board_type 
    1   boardA 
    2   boardB 
    3   boardC 
  • 創建board_type_id
    • 該指數將加速對每個board_type
相關問題