簡體   English   中英

如果可以將文件路徑保存在數據庫中並將實際文件保存在存儲中,為什么還要使用Blob?

[英]Why to use Blob at all if I can save file pathes in database and actual files in storage?

我知道blob是二進制數據的數據類型,因為integer是int的數據類型。 就像他們說的那樣,它用於直接在數據庫中存儲文件(我們將音頻文件移至blob,然后將該blob保存在數據庫中)。

問題1)如果我可以將音頻放入例如路徑/var/www/audio.mp3的存儲中,並在數據庫中存儲path_name /var/www/audio.mp3的數據庫中,為什么要存儲blob來存儲音頻?

問題2)哪個更好? netflix如何存儲電影? 只是斑點還是什么?

問題3)如果您能給我一些想法,以便我知道何時使用它們,請問是否有任何弊病。

使用blob,您可以存儲各種東西。 您是否通過SOAP或JSON與API進行通信並將其存儲在數據庫中? 使用斑點。 是否想記錄用戶在拋出異常時填寫的內容? 將整個帖子存儲為Blob。 您可以按原樣保存所有內容。 如果您使用不同的數據格式,則非常便於記錄。 我知道一個API,它希望通過SOAP提供一些數據,而有些則需要JSON。 為了記錄通信,我使用blob,因為響應可能是XML,JSON,數字(http代碼203為空但被接受)或數組異常。

將Blob放入數據庫而不是文件中,可以使您通過負載平衡擴展到多台服務器。 如果將數據放入文件中,則必須在服務器之間復制文件。 大多數數據庫具有內置的復制功能,這對於常規文件而言並不容易。

最好使用外部存儲器/ cdn來提供此類大容量內容。

Netflix和我們的工作方式如何? 他們將內容上傳到外部存儲桶(即S3)上,並在db中寫入文件名以進行識別。 根據用戶文件訪問頻率,該文件將緩存在CDN /邊緣位置上。 用戶從其最近的邊緣位置訪問內容服務器時將獲得很棒的體驗

暫無
暫無

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

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