【发布时间】:2012-10-20 11:59:18
【问题描述】:
我收集人们如何用表格中的类别标记主题,例如:
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 on votes(其中 category_id=x 和 topic_id=y)是否会比案例 1 慢: Order by categoy_x where topic_id=y
哪一个会更好!从性能的角度来看:
- 拥有 200 万行 14 列
- 拥有 4 列 2400 万行
谢谢
【问题讨论】:
-
其实是切换到 NoSQL 数据库的一个很好的例子。 :-)
-
别忘了 option1 +按 votes_category_xxx 排序需要 XXX 索引。规范化版本(选项 2)将具有恒定数量的索引/键约束。
标签: mysql sql performance