在MySQL中存储视频

时间:2015-10-02 08:28:12

标签: mysql

我正在做一个学术项目网站,让学生上传和下载文件。

将文本文件照片和视频直接插入数据库或将它们存储到服务器并在数据库中链接到它们会不会更好?

您能否以任何方式讨论绩效和其他问题。 注意:我正在使用MySQL数据库,我也想上传非常冗长的视频(如一小时),文件大小也可能为1 GB。

2 个答案:

答案 0 :(得分:0)

您只需要将视频存储在某个文件夹和路径中,该视频的唯一名称需要存储到数据库中。

所有媒体文件必须存储在某个位置,并且必须将其链接存储在数据库中。

答案 1 :(得分:0)

正如您自己发现的那样,有两种可能的方法可以做到这一点:

  1. 将整个文件(您需要的元数据+视频本身)存储在数据库中
  2. 在视频本身存储在硬盘驱动器(或其他硬盘驱动器)上时,只存储数据库中文件的链接(所需的元数据)
  3. 第二种方法通常是首选的(尽管索引有助于纯粹的性能),因为:

    • 当您备份数据库时,如果您同时拥有视频数据,那么它会在一段时间内停止运行。
    • 同时回放视频数据的SQL查询需要更长时间(索引与否),因为它们只需返回更多数据。这也导致数据库服务器必须更多地工作。
    • 如果有许多删除和插入,...您可以非常快速地填写事务日志,并且它会变得非常大。

    此外:文件系统通常非常擅长管理文件(无论操作系统是否正在运行),因为它仅用于此目的。

    所以从本质上讲,将它四舍五入:没有必要将文件本身存储在数据库中,并没有带来任何好处。更加如此,数据库的备份/恢复操作需要更长时间,并且您可以更快地填充日志,因此您需要在数据库服务器上有更多空间。除了这个没有相应构建的第一个变体的sql命令需要花费更长的时间(虽然插入和删除总是需要更长的时间,因此我只会说那些可以做得非常快的选择)。

    2.变体的一个缺点:您需要2种备份方法。 1表示数据库,第二个表示文件本身。第二种可能是你需要手动存储/删除文件,并需要适当的例程。