保存视频文件的位置 - 数据库或磁盘

时间:2010-08-19 23:15:37

标签: database video-capture video-processing data-storage

将视频文件作为BLOB对象存储在数据库中或将其存储在物理磁盘上是一个好主意。

这适用于类似于youtube的网站,用户可以上传视频并进行观看

数据库将是Mysql

哪个选项更好,为什么

由于

2 个答案:

答案 0 :(得分:2)

Pro MySQL: - BLOB可能受外键影响,从而使数据库保持冗余,而不是保存到文件系统。在这种情况下,您必须编写删除文件的程序。 - 细粒度的用户权限。

缺点: - MySQL不是免费运行的,它带来了开销而不是来自文件系统的服务。 - Web服务器无法直接从数据库中提供BLOB。这意味着PHP必须调解该过程。当BLOB从MySQL加载到PHP时,内存使用量将至少与BLOB一样大。因此,在您的情况下,文件可能会运行到数百MB,这将给网络服务器带来巨大压力。

在所有现实中,MySQL并不用于保存文件。 BLOB主要用于保存诸如缓存之类的序列化数据。

答案 1 :(得分:0)

我使用NFS来存储大约5年的媒体内容,而不存在存储问题。 通过ffmpeg,php脚本和cron作业管理操作,编码和保存。 视频元数据存储在MySql数据库中,并通过Nginx(通过只读NFS挂载)提供Web传送。 在此环境中,视频文件的大小最大为2GB。 可能我可以更快地在另一个数据库引擎上运行,但实时浪费是由于编码过程而不是保存文件。

当我保存数以千计的小图像(如头像)时,我曾经使用MySql来存储文件元数据(图像路径和其他属性),而不是将文件保存在BLOB字段中,这可能会使数据库速度过慢沉重的疑问。