我希望有人能夠解釋如何使用BLOB。我發現BLOB可以用來存儲視頻文件。我的問題是爲什麼一個人將視頻文件存儲在SQL數據庫的BLOB中?與將指針存儲到視頻文件的位置相比,有哪些優點和缺點?存儲視頻文件的SQL中的BLOB's
回答
有幾個不同的原因。
如果存儲指向磁盤上文件的指針(推測使用BFILE
數據類型),則必須確保在磁盤上移動,重命名或刪除文件時更新數據庫。當你存儲這樣的數據時,相對常見的情況是,隨着時間的推移,你的數據庫會與文件系統不同步,並最終導致斷開的鏈接和孤立的內容。
如果您將指針存儲在磁盤上,則在處理多媒體時不能使用事務性語義。由於你不能像對文件系統發出回滾這樣的事情,你必須處理這樣一個事實,即你將遇到文件系統上的數據與數據庫中的數據不匹配的情況(即有人將視頻上傳到文件系統,但在數據庫中創建作者和標題的交易失敗,反之亦然),或者您必須在文件上傳中添加額外步驟以模擬交易語義(即上傳第二個<> _done.txt文件只包含上載的實際文件中的字節數,這很麻煩,容易出錯,並且可能產生可用性問題。一個用戶,如果你想避免給用戶一個直接的FTP URL給你的文件,因爲他們可以用它來繞過一些應用程序陽離子級別的安全性,最簡單的選擇是在數據庫支持的應用程序中檢索數據,數據庫從文件系統讀取數據,然後將其返回到中間層,然後將數據發送到客戶端。如果每次檢索數據時都必須將數據讀入數據庫,那麼將數據直接存儲在數據庫中並讓數據庫在用戶詢問時從數據文件中讀取數據通常更有意義爲了它。
最後,像Oracle這樣的數據庫提供了額外的工具來處理數據庫中的多媒體數據。例如,Oracle interMedia提供了一組豐富的對象來與存儲在數據庫中的視頻數據進行交互 - 您可以輕鬆標記場景開始或結束的位置,標記討論各種主題的位置,錄製視頻的時間,錄製人員等。您可以將搜索功能與針對所有關係數據的搜索進行整合。當然,你也可以在數據庫之上編寫一個應用程序來完成所有這些事情,但是你要麼編寫大量代碼,要麼在應用程序中使用另一個框架。利用數據庫功能通常要容易得多。
抓住這個讀:http://www.oracle.com/us/products/database/options/spatial/039950.pdf (顯然有偏頗的,但也有一些缺點(現在已被固定由11g的到來)
- 1. 在Android中存儲視頻文件
- 2. 存儲序列化的視頻文件到SQL Server
- 3. 無法在內部存儲器中存儲視頻文件Android
- 4. 存儲和管理視頻文件
- 5. 無法存儲視頻文件目錄
- 6. 在一個文本文件中存儲youtube頻道的視圖
- 7. 如何刪除存儲在文檔文件夾中的視頻?
- 8. 視頻存儲
- 9. 如何獲取存儲在azure存儲中的視頻文件的第一幀
- 10. iOS中的視頻文件和視頻「描述」文件的存儲文件夾 - Apple指南
- 11. 存儲在媒體庫中的文件的視頻播放
- 12. SQL Server BLOBs vs文件鏈接
- 13. 防止在android的內部存儲器中存儲兩次視頻文件
- 14. 將視頻文件上傳到NODEJS中的AZURE BLOB存儲
- 15. 空BLOBS - SQL Server
- 16. 在MySQL中存儲視頻
- 17. 在android中的sqlite中存儲視頻?
- 18. Firebase:視頻存儲
- 19. Oracle Blobs - 存儲大小還是計算?
- 20. 在PouchDB中存儲視頻/音頻
- 21. Azure存儲入門:Blobs vs Tables vs SQL Azure
- 22. 播放存儲在NSData中的視頻
- 23. 最優雅的方式來打印存儲爲BLOBs不同的文件格式
- 24. 在sql server中存儲視頻的持續時間
- 25. 從內部存儲路徑播放音頻視頻文件
- 26. 存儲在SQL Server中的XML文件
- 27. 我在哪裏存儲網站的視頻文件?
- 28. 科爾多瓦iOS播放localy存儲的視頻文件
- 29. 保存的視頻到iPhone的視頻文件夾
- 30. 我可以在視頻視圖中循環存儲在原始文件夾中的多個視頻嗎?