2014-12-07 89 views
1

目前,我正在製作一個WPF + C#應用程序。我應該將圖像存儲在服務器上,但我不知道是否應該將圖像存儲爲二進制或base64。如何在SQL Server數據庫中存儲圖像

以上哪一種方法最好?

我使用SQL Server存儲數據庫!

謝謝!

+1

哪個數據庫? oracle,SqlServer,Mysql? – Patrick 2014-12-07 03:30:15

+0

我不問如何將圖像存儲到數據庫,我想知道商店作爲二進制或base64是最好的! – 2014-12-07 03:38:32

回答

2

有Microsoft Research的一個非常好的紙張路徑稱爲To Blob or Not To Blob

他們大量的性能測試和分析後得出的結論是這樣的:

  • 如果您的圖片或文檔通常低於在大小256K,將它們存儲在數據庫中VARBINARY列更有效

  • 如果您的圖片或文檔的大小通常超過1 MB,將它們存儲在文件系統中效率更高(並且對於SQL Server 2008的屬性,它們仍處於事務控制下並且是數據庫的一部分)

  • 在這兩個之間

    ,這取決於你的使用有點難以取捨的

如果你決定把你的照片到SQL Server表,我會強烈建議使用一個單獨的表存儲這些圖片 - 不要將圖像存儲在「常規」表格中 - 將它們保存在單獨的表格中。這樣,假設您並不總是需要選擇圖像,作爲查詢的一部分,常規表格可以保持精簡併且意義非常高效。

但是如果你選擇將圖像存儲在SQL Server數據庫,通過各種手段直接它們存儲爲二進制值 - Base64編碼,他們!這是瘋狂的,並會大幅度炸燬你的圖像尺寸,沒有真正的好處。

-1

不是存儲圖像的字節數,你可以將文件保存在一個特定的文件夾,並保存在數據庫中

+0

但我的應用程序安裝在許多客戶端! – 2014-12-07 03:33:21

+0

將圖像存儲在SQL Server數據庫中是完美的 - 這個問題已經被討論過了(參見上面的鏈接)。最好的祝福, – 2014-12-07 03:41:11

相關問題