【问题标题】:Where to save video files - database or disk保存视频文件的位置 - 数据库或磁盘
【发布时间】:2010-08-19 23:15:37
【问题描述】:

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

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

数据库将是 Mysql

哪个选项更好,为什么

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-29
        • 2012-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-09
        • 2012-03-24
        相关资源
        最近更新 更多