2010-08-19 99 views
1

將視頻文件作爲BLOB對象存儲在數據庫中或將它們存儲在物理磁盤上是一個不錯的主意。保存視頻文件的位置 - 數據庫或磁盤

這是類似YouTube網站,用戶可以上傳自己的視頻和查看他們

數據庫是Mysql的

哪種選擇更好,爲什麼

感謝

+0

其中RDBMS? ... – 2010-08-19 23:18:34

+0

數據庫將是Mysql – Gublooo 2010-08-19 23:20:20

回答

2

臨的MySQL : - BLOB可能受外鍵影響,因此保持數據庫冗餘而不是保存到文件系統。在這種情況下,你必須編程刪除文件。 - Finegrained用戶權限。

騙局: - MySQL不能免費運行,它與開銷相比,而不是從文件系統的服務。 - Web服務器無法直接從數據庫提供BLOB。這意味着PHP將不得不調解過程。當BLOB從MySQL加載到PHP時,內存使用量將至少與BLOB一樣大。因此,在你的情況下,文件可能會運行到數百MB,這會給Web服務器帶來巨大壓力。

在所有的現實中,MySQL並沒有被用來保存文件。 BLOB主要用於保存多個序列化數據,如緩存。

0

我正在使用NFS存儲大約5年的媒體內容,存儲透視圖沒有問題。 操作,編碼和保存通過ffmpeg,php腳本和cron作業進行管理。 視頻元數據存儲在MySql數據庫中,並通過Nginx提供Web傳輸(通過只讀NFS掛載)。 在此環境中,視頻文件最大可達2GB。 也許我可以在另一個數據庫引擎上更快,但是,實時浪費是由於編碼過程而導致的,而不是用於保存文件。

當我保存成千上萬的小圖像(比如頭像)時,我曾經使用MySql來存儲文件元數據(圖像路徑和其他屬性),而不是將文件保存在BLOB字段中,這可能會讓db變得太慢在沉重的查詢。