为基于Web的应用程序存储和检索大视频文件的最佳方法?

时间:2010-11-04 17:53:12

标签: mysql blob video-processing

我正在制作视频分享网站。所以我在想什么是存储大量视频文件的最佳方式。因此,访问它们时速度快,性能高。

我问我的同事,他们说将文件存储在硬盘文件夹上不会有效,因为在许多读/写操作中它会非常慢。

有人建议存储在mysql blob中。

我在这里很困惑!

让我知道你们的想法是什么?

6 个答案:

答案 0 :(得分:4)

通常将大型文件存储在数据库中并不是一种好习惯。有关详细信息,请参阅this问题以及与其相关的问题。

如果您的预算允许,您可以考虑使用Rackspace Cloud FilesAmazon S3等服务,而不是简单地存储在磁盘上。

答案 1 :(得分:1)

使用数据库中的ID键将文件排序到文件夹中。

取第一个数字,将其放在第一个目录中,将第二个数字放在下一个......依此类推:

例如:

18

/视频/ 1/8 / MyvideoFile

1892

/视频/ 1/8/9/2 / MyVideoFile

或者,您也可以通过在数据库中存储服务器编号,在各种服务器或NAS群集上对它们进行排序。

希望有所帮助。

答案 2 :(得分:0)

存储在mysql数据库中比在HDD上存储二进制文件要慢。如果一台计算机无法处理负载,您可以在多台计算机上存储文件的副本,并使用现成的负载平衡器来管理它。

答案 3 :(得分:0)

视频太大,无法在MySQL中高效存储。使用文件系统。想出一个合理的方法将视频文件分类到不同的目录中,这样就不会在一个目录中结束数千个文件。例如,所有以'a'开头的文件都会进入目录'a'等等。

如果您的网站变得非常庞大,将视频卸载到CDN可能是有意义的,例如Amazon Cloudfront

答案 4 :(得分:0)

例如,你有一个大小为50 GB的文件,你可以在50个磁盘上并行写入,每个磁盘上有1 GB的部分,所以你只需要1秒钟就可以写入,同样它需要1秒钟才能写入从50个磁盘中读取。考虑像HDFS这样的文件系统。

答案 5 :(得分:-1)

一个解决方案需要您花费很少的前期时间投资,但从长远来看这将为您节省大量麻烦...正在使用云存储服务,如:

http://aws.amazon.com/s3/ 要么 http://www.rackspacecloud.com/cloud_hosting_products/files

它可扩展,您的服务器可以专注于运行您的网络应用程序。