SQL表性能 - 更多或更少的表?

时间:2016-04-28 16:29:56

标签: mysql performance

在创建通知系统时,我遇到了一个问题。系统创建的社区相当大,我对SQL表有两个想法:

  1. 制作一张包含以下内容的表格:

    评论表:

    id(AUTO_INCREMENT) | comment(text) | viewers_id(int) | date(datetime)
    

    在此选项中,评论与日期一起存储,所有查看评论的用户都以","分隔。例如:

    1| Hi I'm a penguin|1,2,3,4|24.06.1879
    

    系统现在应该使用列viewers_id来决定是否应该显示通知。

  2. 制作两个表格,如:

    评论表:

    id(AUTO_INCREMENT) | comment(text) | date(datetime)
    

    viewer table:

    id(AUTO_INCREMENT) | comment_id | viewers_id(int)
    

    示例:

    5|I'm a rock|23.08.1778
    1|5|1,2,3,4
    

    在此示例中,我们再次检查viewers_id

  3. 其中哪些可能会有更好的表现?

1 个答案:

答案 0 :(得分:0)

在我看来,您不应该过分关注优化表格,因为首先优化您的应用程序会更有价值。
现在问你的问题:
提高SQL表的性能可以通过两种方式实现:
1.为每个SQL表标准化我建议你将其标准化: Wikipedia - normalization 2.您可以减少并发性,这意味着减少因数据变更而无法访问数据的次数。
至于你的例子:如果我必须选择其中一个我会选择第二个选项。