代码之家  ›  专栏  ›  技术社区  ›  Gublooo

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

  •  1
  • Gublooo  · 技术社区  · 14 年前

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

    数据库应该是Mysql

    哪种选择更好?为什么

    2 回复  |  直到 14 年前
        1
  •  2
  •   jpluijmers    14 年前

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

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

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

        2
  •  0
  •   fab23    12 年前

    我使用NFS存储了大约5年的媒体内容,从存储角度看没有问题。 通过ffmpeg、php脚本和cron作业管理操作、编码和保存。 在此环境中,视频文件的大小可达2GB。 也许我可以在另一个数据库引擎上运行得更快,但是,实时浪费是由于编码过程,而不是为了保存文件。

    当我保存成千上万的小图片(比如头像)时,我曾经使用MySql来存储文件元数据(图片路径和其他属性),而不是将文件保存在BLOB字段中,后者会在繁重的查询中大大降低db的速度。