我有productList的的表,其中我有4列,現在我具有存儲圖像的每一行,所以我有兩個選項這個..在數據的基礎上我們應該何時將圖像存儲在數據庫中?
- 存儲圖像。
- 將圖像保存到一個文件夾中,並將唯一路徑存儲在表格上。
所以我的問題是在這種情況下哪個更好,爲什麼?
我有productList的的表,其中我有4列,現在我具有存儲圖像的每一行,所以我有兩個選項這個..在數據的基礎上我們應該何時將圖像存儲在數據庫中?
所以我的問題是在這種情況下哪個更好,爲什麼?
微軟研究院就這個問題發表了相當廣泛的論文,名爲To Blob Or Not To Blob。
他們的簡介是:
應用設計者經常面臨是否要大對象存儲在文件系統或數據庫中的問題。通常這個決定是爲了簡化應用程序設計而做出的。有時候還會使用性能測量。本文着眼於碎片問題 - 可能影響長期部署的系統的性能和/或可管理性的操作問題之一。正如人們普遍認爲的那樣,小於256K的對象最好存儲在數據庫中,而大於1M的對象最好存儲在文件系統中。在256K和1M之間,讀寫比率和對象覆蓋率或替換率是重要因素。我們使用「存儲時間」的概念或對象覆蓋次數作爲標準化掛鐘時間的方式。存儲時間允許我們的結果或類似的結果適用於多個讀取:寫入比率和對象替換率。
+1 - 我一直在找那張紙,記不起名字。 – Oded 2010-11-18 10:19:02
這取決於 - 如果您知道它們不會經常增加尺寸,則可以將圖像存儲在數據庫中。這在您部署系統或遷移到新服務器時具有優勢。你不必擔心分開復製圖像。
如果沒有。的行在該系統上非常頻繁地增加,並且圖像變得更大,然後將其存儲在文件系統上並且具有存儲在數據庫中的路徑供以後檢索。這也會讓你在遷移你的服務器的時候需要注意從文件路徑單獨拷貝圖像。
這個問題被問了很多很多次:http://stackoverflow.com/q/1234202/79444; http://stackoverflow.com/q/1071636/79444; http://stackoverflow.com/q/815626/79444; http://stackoverflow.com/q/815626/79444;等等......甚至在那些問題中,他們提到這些問題也是重複的...... – veljkoz 2010-11-18 10:33:23
和...其中一些重複的部分再次被標記爲重複...深層鏈。 – 2010-11-18 10:50:19