1

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

这是一个类似于 youtube 的网站,用户可以在其中上传他们的视频并查看它们

数据库将是 Mysql

哪个选项更好,为什么

谢谢

4

2 回答 2

2

Pro MySQL: - BLOB 可能受外键约束,因此保持数据库冗余,而不是保存到文件系统。在这种情况下,您必须对文件的删除进行编程。- 细化的用户权限。

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

实际上,MySQL 并不是用来保存文件的。BLOB 主要用于保存大量的序列化数据,例如缓存。

于 2010-08-19T23:35:00.817 回答
0

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

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

于 2012-12-10T10:24:59.253 回答