2015-10-04 63 views
3

情况如何汇总SQL数据(电子邮件事件)以减少记录数量?

  • 我连续存储电子邮件事件数据(打开,点击,退订等)从我的电子邮件活动。
  • 今年我发送了超过8200万封电子邮件,并发送了许多电子邮件给同一个人(这导致了我的下一个要点)。
  • 我担心每个事件使用一行(例如打开)效率不高。

问题:什么可能是更好的方式来组织数据?有没有办法为单个行中的每个联系人/人员聚合事件数据,并且仍然允许SQL访问每个事件/属性?

以下是我可能想象存储数据:再次

enter image description here

但后来,我想数据为Microsoft SQL处理,而不是由PHP,我不知道如何这可以做到。任何见解都会有所帮助。谢谢。

+4

不是一个数据库的存储大量数据的?按预期方式使用它,每个事件使用单行,对于我来说,要比在文本字段中存储不同的事件更加高效,并且每次要查询时都必须解析JSON。您将如何回答“有多少人点击了广告系列XXX”等问题?除此以外? – CompuChip

+0

我猜我认为记录的数量最终会增长到数十亿,并且我很难看到它在这样的大型表上运行测试的效率。尽管你的第二个问题确实碰到了头部。是的,找出有多少人点击广告系列“XXX”并不是非常可行。 – Frumples

+3

在阅读你的问题和CompuChip的一个非常好的评论之后,我会建议看看SQL Server表分区(成本钱只在企业版中可用),但你真的在这里处理大量的数据,一年有8200万行,到明年年底你将处理将近150行,我认为表分区将会帮助你很多。 –

回答

0

您可以规范化您的数据库,为此作业创建2个表格。

一个用于主数据(客户端/人的数据),而另一个细节(点击查看)

像这样的事情 Sample