簡體   English   中英

具有二進制數據/圖像的表中的性能

[英]Performance in tables with binary data/images

我做了一個人員維護屏幕。 客戶希望我將每個人的照片存儲在數據庫中,而我做到了沒有問題。 我有一個單獨的圖像表,其中包含兩個字段Id_person和Image。

我有點擔心,因為這是我第一次使用數據庫中的圖像。 當表格增長到超過1000/5000張圖像時,我會遇到性能問題嗎? 我想每個圖像的大小都會有所不同。 我確定我需要控制用戶不要在數據庫中保存很大的圖像。

好的尺寸限制是多少? 客戶只需要臉部照片,但我敢肯定,有人會嘗試用“最新型號”的照相機來制作高質量的照片;)

謝謝。

通常最好保留一個圖像文件夾,而DB僅引用該文件夾。 理想情況下,每個人都有一個唯一的ID,並且“ images”文件夾中的文件與該ID匹配。

如果您真的想直接存儲二進制數據,則可以以8KB的JPEG格式獲得質量合理的照片(約250x250像素@ 25%的質量)。 當然,這對於打印將是不可接受的,但是對於識別是很好的。

只有您知道您是否可以在數據庫服務器中每行接受額外的8KB。

如果您絕對必須采用這種方式,我會說將其限制為每個千字節。 但是,世界上每個數據庫管理員都可能會告訴您,將圖像膨脹到數據庫字段是一個非常非常糟糕的主意。 最值得注意的是,當數據庫文件的大小超過2 GB時,性能將急劇下降。

我更願意像jheddings所說的那樣做,並在每個人的ID的文件夾中添加一個文件名,然后在網絡共享上使用一個標准的.jpg或其他名稱,以便使用該應用程序的所有計算機都可以訪問這些圖像。

一些人發現,僅在需要刪除或存檔照片的情況下,僅使用ID是不夠的,在這種情況下,他們會將NVARCHAR(MAX)字段放入其數據庫中,並將網絡文件路徑存儲為圖像,而不是實際的圖片。

如果您的客戶絕對不能擁有網絡共享路徑,我只會使圖像模糊。

只要它在具有ID | BLOB的單獨表中,獲取該照片就不會有任何性能問題,但另一方面,我更喜歡在DB中僅保留對hdd上文件的引用(如果它僅包含用戶照片,則更好;確實不需要引用,因為ID為1的用戶訪問/images/1.jpg)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM