2011-09-08 18 views
1

我想討論我們需要實現的應用程序的設計方法。應用程序需要存儲和稍後處理電子郵件。我們每天有大約2000封電子郵件,平均大小(包括附件)大約爲2MB,我們需要將它們存儲3個月。用於在應用程序中存儲電子郵件的設計方法

方法1:

存儲在文件系統中的電子郵件,並插入只在數據庫的路徑。

方法2:

將完整的電子郵件存儲在數據庫的CLOB字段中。

這兩種設計方法的優缺點在哪裏?

+0

您需要多長時間參考一下這三個月內電子郵件的內容?這將對決定是否將內容存儲在數據庫中產生重大影響。 – Flyingdiver

+0

電子郵件只處理一次,之後他們只有「達到」我們需要分析的情況。 – markus

回答

1

我建議將它存儲在數據庫中,CLOBs很慢但不會比從文件系統中慢得多。如果一切都在一個地方,您的災難恢復故事變得更加容易。

如果您查詢有問題的表的次數多於訪問電子郵件內容,我還會使用指向另一個表中的CLOB的指針。

+0

隨着災難恢復這個術語,您可以將我帶到另一個角度。由於我們的db沒有太多的負載,我正在考慮使用postgres 9.1的同步複製的新特性。然後,一個事務只在存儲在兩個數據庫中時才被提交。在db中存儲高達2MB的CLOB時,你認爲同步複製是我可以使用的東西嗎? – markus

+0

我對同步複製並不十分熟悉,但如果吞吐量不是很大,我認爲可以使用大約2mb左右的事務輕鬆管理它。你會對這個表做任何批量加載類型的操作嗎? – AlexCuse

+0

不,我們沒有批量加載。 – markus

相關問題