2013-11-03 260 views
3

我正在開發一個網站,該網站將從數十萬個圖像開始,希望成千上萬的圖像。大多數圖像的物理尺寸不會超過300K。什麼是將這些存儲在PostgreSQL中的最佳方式?我所知道的一件事是,系統將使用模式,分區和表空間來管理存儲。在PostgreSQL中存儲圖像的最佳方式

+2

我們將使用這些用於什麼?對於某些情況,最好將每個圖像存儲爲一個文件,並將路徑存儲在數據庫中。 –

+0

添加到@DanielVérité的評論中,您現在也可以使用外部數據包裝器。 –

+0

@PaulDraper:我用web應用程序做了一次快速基準測試,結果表明,對於不超過幾MB的文件(我不記得實際的盈虧平衡點),將它們存儲在Postgres中實際上(稍微)比使用文件系統。對於SQL Server來說,這看起來是一樣的:http://research.microsoft.com/apps/pubs/default.aspx?id=64525(我的測試靈感來源於微軟文章) –

回答

2

如果圖像不超過300Kb,最簡單的方法是使用bytea字段。 圖像保存在數據庫中:一個簡單的備份將包括圖像。

或者,PostgreSQL可以處理大型對象: http://www.postgresql.org/docs/9.3/static/largeobjects.html 利用它將圖像存儲在數據庫的外部。

或者,您可以將圖像保留在文件系統中,保存在文本字段中,並使用兩個存儲的函數(例如在pl/python中),這些函數允許您編寫和讀取外部文件以存儲和檢索圖片。

+9

你是如何達到300Kb的限制的? –

+1

@ MilenA.Radev可能他是指OP希望存儲的文件大小爲300K,而不是任何限制。 – Pithikos