我正在爲我的客戶的客戶建立一個數據庫來發送電子郵件促銷信息。該數據庫將包括我所有的12個客戶,每個客戶平均有2100個客戶。我想知道是否最好在我的每個客戶端都有一張表格,其中包含客戶名單,或者我應該製作一張大桌子...在MYSQL中,最好是有一張大桌子還是很多小桌子
客戶將每天進行查詢。
我知道這是一個廣泛的問題,但任何意見將不勝感激。
乾杯,
查
我正在爲我的客戶的客戶建立一個數據庫來發送電子郵件促銷信息。該數據庫將包括我所有的12個客戶,每個客戶平均有2100個客戶。我想知道是否最好在我的每個客戶端都有一張表格,其中包含客戶名單,或者我應該製作一張大桌子...在MYSQL中,最好是有一張大桌子還是很多小桌子
客戶將每天進行查詢。
我知道這是一個廣泛的問題,但任何意見將不勝感激。
乾杯,
查
12 * 2100 = 25200
記錄這是每一個現代數據庫花生米(如果提供適當的索引,這是)。
因此,建立一個大表(如果這將緩解查詢,它是一種臨時表)。
編輯:否則我會採用duffymo建議的標準化路徑。
我的客戶12和他們每個人都有 平均2100個客戶
這是一個簡單的呼叫:它的客戶和消費者之間的一個一對多的關係,所以爲什麼不能有兩個表之間有外鍵關係? JOIN不會花費太多。我建議正常化它。行數是微不足道的。
確保向客戶表中的電子郵件地址列添加了UNIQUE約束。
您不必擔心數據庫性能,但是您發送的電子郵件數量 - 25,200電子郵件會給您的郵件服務器帶來很大壓力。
可能有另一個原因來保留單獨的表,但:您使用的電子郵件地址是來自不同客戶端的機密數據。理所當然地保留單獨的表格是幫助防止混淆的附加層。此外,表格(=客戶端)可以輕鬆地傾倒,丟棄和/或添加。
或者你可以有一個大桌子和幾個視圖。
您將可以直接從視圖中插入,更新或刪除。
我最終爲它們使用了一張大桌子。有幾個回頭客,但在25000之外,只有大約10個。 – 2011-05-02 20:08:16
對於使用SendGrid的郵件服務器 - 他們踢屁股 – 2011-05-02 20:08:35