我收集與分類表像人們標籤主題如何:MySQL數據庫結構:多列或多行
ID | topic_id | votes_Category_1 | votes_Category_2 |.......... | votes_Category_12
我轉儲這個表中的每個小時的歷史原因。 可以說表包含200萬行。歷史表中每小時都會拋棄。
該解決方案是不靈活,如果我想添加列Category_13,所以我想這一個:
ID | topic_id | Category_id | vote_count
該解決方案將創建每個主題12行,其結構更好,更靈活,但我必須每小時轉儲2400萬行。
我需要每個類別中最好的10個主題! 我不知道在案例2中,如果在票數上使用Max(其中category_id = x和topic_id = y)將比案例1中慢:order by categoy_x where topic_id = y
哪一個會更好?從性能立場來看:
- 有2個百萬行的14列
- 要與4列
2400萬行謝謝
其實是切換到NoSQL數據庫的一個很好的例子。 :-) – skovalyov
不要忘記,option1 +由votes_category_xxx排序將需要XXX索引。標準化版本(option2)將具有固定數量的索引/鍵約束。 – wildplasser