php:将图像存储到Mysql blob中,好还是坏?

时间:2011-06-11 04:03:30

标签: php mysql blob

这个问题令我困惑,所以我想我应该听一个专家的声音!。

将图像上传到文件夹并保存到mysql的链接更好,或者更好地将img本身上传到blob mysql字段?

非常感谢

3 个答案:

答案 0 :(得分:20)

我经常构建系统来将图像存储在数据库中,这样做有利有弊。

优点:

  • 您的所有数据都保存在一个地方,如果您迁移您的网站/数据库,那么图片就会在那里
  • 更容易排序/删除/等...
  • 由于您必须通过PHP脚本提供服务,因此您可以执行其他操作,例如安全性(如果需要)或图像处理(显然您也可以使用平面文件执行此操作,但您必须确保绕过安全性将图像留在公共目录中。)

缺点:

  • 它慢于从网络服务器提供平面文件,因为PHP脚本需要检索它,MySQL需要返回数据。
  • 您的数据库将变得非常快,并非所有网络主机都对此非常友好。
  • 文件系统的平面文件存储和检索速度更快,因为这正是文件系统的设计目标。

答案 1 :(得分:2)

坏。您的Web服务器可以更好地管理到期标头并直接从文件系统加载文件。使用文件系统,吞吐量会高得多。这就是它的设计,利用它。

SQL数据库是为关系数据设计的,而不是图像。您只是不必要地加载您的数据库。改为存储路径/图像名称。

答案 2 :(得分:0)

如果你的应用程序很大,你必须重复显示大量/大小的图像,那么你应该选择第一种方法(只在数据库中存储图像路径,在文件系统中存储实际图像)。这将减少显示图像的处理时间,而且消耗更少的资源。其次,如果您的应用程序需要的图像数量较少,则可以将它们直接存储在数据库中。这样就可以轻松地将备份和端口应用程序带到另一个操作系统。

相关问题