2010-06-01 15 views
1

我創建了一個跟蹤潛在客戶和轉化的affilaite系統。潛在客戶和轉化記錄將進入數百萬人,因此我需要一種很好的方式來存儲它們。用戶需要每小時,每天,每週和每月跟蹤統計數據。存儲會員線索和轉換

什麼是存儲潛在客戶和轉化的最佳方式?

回答

0

對於這種類型的系統,您需要保留所有的詳細記錄。原因在某些時候某人會對發票進行競爭。

但是,你應該有一些捲起來的表格。每小時計算當前小時數並存儲結果。每天,每週和每月都一樣。

如果某些偏差沒問題,您可以計算每24小時計算的記錄的每日金額。每週最近的7個日誌記錄。對於每月,您可能需要計算每小時記錄的回報,因爲每個月不會累計達4個整週。此外,它有助於減少您可能正在進行的任何平均值的噪音。

我推薦兩步歸檔過程。第一個應該每天運行一次,並將記錄移入單獨的「熱」數據庫。儘量保持3個月的熱量,以便進行任何類型的研究查詢。

第二個歸檔過程由您決定。您可以簡單地將任何3個月以前的記錄移動到某種類型的csv文件中,並簡單地將其備份。經過一段時間(一年?),根據您的數據保留協議刪除它們。

+0

感謝克里斯。我曾考慮過將表格中的潛在客戶存儲在另一個表格中,並在另一個表格中進行轉換,然後從時間戳中進行計算,但如果我在12個月內繼續這樣做,則數據庫加載時間會變慢。 我喜歡你的想法。我所有的聯盟系統都有每日「維護」計劃,我猜測它們是一樣的。 有些人每週都會這樣做,有些人每天都這樣做。 – 2010-06-01 18:22:30

+0

我有過使用大量(300+ GB)高度事務數據庫,每秒處理100次插入的經驗。我發現的唯一方法就是將彙總作爲一個單獨的過程來完成。而且,隨着表格大小的增加,將所有不需要的記錄移動到別處變得至關重要。否則備份/恢復需要FOREVER。 – NotMe 2010-06-01 18:32:31

+0

順便說一句,那些數據庫不是mysql,所以我不能說它將如何行事。但是,你應該沒問題。 – NotMe 2010-06-01 18:34:05

0

根據負載情況,您可能需要有多個Web服務器來處理引導和轉換像素觸發。一種選擇是將原始數據記錄存儲在每臺web/mysql服務器上,然後每隔5-10分鐘運行一次存檔過程,將其存儲在高度規範化的表結構中,並執行任何所需的彙總以實現您的性能正在找。

請務必保持行尺寸儘可能小,存儲IP的爲無符號整數,存儲裁判作爲參考查找表的INT等