【问题标题】:php video and photo uploading: storing in database vs. uploadingphp视频和照片上传:存储在数据库中与上传
【发布时间】:2012-04-19 10:19:40
【问题描述】:

我将在不久的将来访问一个需要上传和存储数百甚至数千个视频的大型网站。此外,需要上传许多图像,但数量不多,而且它们的尺寸很小。到目前为止,我一直使用php和mysql如下:

  • 上传图片
  • 将文件名存入数据库
  • 引用数据库中的文件夹+文件名来显示文件

但是,我对一些在数据库中存储图像和文件的 BLOB 进行了一些研究,但不确定哪种方式最适合这个潜在的大型项目。我应该继续像以前一样上传,还是在mysql中使用BLOB类型更有效?我担心通过在数据库中存储大量视频和图像,可能会导致数据过多或速度过慢,但我可能完全错了。请让我知道您的任何建议。

【问题讨论】:

  • 对于您存储在 BLOB 中的每个视频,小猫都会死去!!
  • 你有一个非常有效的观点!

标签: php mysql file-upload upload blob


【解决方案1】:

BOLB 中存储图像效率不高。将很难管理。您的数据库将变大。

使用 PHP 脚本从服务器提供文件会更慢

【讨论】:

  • 同意。我也不会把图片放在一个 bolb 中 ;-)
【解决方案2】:

好的,所以两大领域是:备份和更改

备份

根据您选择的数据库引擎,备份需要锁定/转储/解锁。数据库越大,锁定的时间就越长。您可以使用一些功能(主/从)来允许热同步(没有锁的备份),但是备份存在无法完全覆盖数据集的风险,并且数据库的规模仍然是一个因素。如果大文件只是文件(而不是 DB BLOBS),则只需为文件系统制定备份策略,并且由于它们可能是静态的,这仅意味着存储多个副本(这甚至可以在上传时设计- 存储在服务器 A 和服务器 B)。

改变

您希望您的系统保持不变吗?听起来你会有缩放问题。随着系统的增长,您是否可以将数据库移动到另一台服务器,将文件存储移动到另一台服务器或 SAN(或 S3 等)?如果您将所有内容都锁定在数据库中,则必须仅依靠数据库解决方案来处理膨胀的大小(大型昂贵的服务器、主/从等)。当然,您可以将文件存储在一个数据库中(更少的备份要求,不会弄乱您的数据数据库),而将其他数据存储在另一个数据库中......但是文件系统是一种数据库。

所以

因此,对于备份和扩展,将大文件存储为文件而不是 BLOB 是更好的解决方案。如果文件很小(例如低 MP JPG),则平衡可能会发生变化。但是对于大文件,数据库处理的开销以及它对数据库服务器的额外负载要求是没有意义的。将它们分开。

【讨论】:

  • 太棒了!我真的很高兴你向我解释了这一点!它有很多帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2014-09-18
  • 2014-10-21
相关资源
最近更新 更多