2015-10-04 69 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