什么时候使用多个表是减少表大小的正确解决方案?

时间:2014-05-20 22:17:24

标签: mysql sql

在阅读了关于MySQL的外键和参考资料之后,我在脑海里想到了这个问题。

如果您运行电子邮件营销服务,并让您的用户创建联系人列表,这将包含大量记录,数千可能一百万或两个,是否更好的想法为每个用户的联系人列表提供一个表?或者是一个包含所有联系人的大表,并将其引用到所属的列表中?

如果您有50,000个用户,并且每个用户都有2个联系人列表,每封10,000封电子邮件,则您有1百万封电子邮件登录到1个单独的表中。在表上运行select查询就不会太强烈了......

SELECT * FROM name_of_the_big_table
    WHERE belonging_contact_list = id_of_the_contact_list

2 个答案:

答案 0 :(得分:1)

  

如果您有50,000个用户,并且每个用户都有2个联系人列表,每封10,000封电子邮件,则您有1百万封电子邮件登录到1个单独的表中。不会在该表上运行选择查询过于密集,如...

没有

您需要考虑MySql环境和查询的设计和实现,但处理您提到的规模本身并不是问题。

Scale Mysql

答案 1 :(得分:1)

一百万条记录对于数据库来说并不是一个很大的数字 - 它们意味着要处理这种情况。通过将所有联系人保留在一个表中,你可以更好地减少碎片 - 这样就不会有重复。
我更喜欢后一种选择。