在数据库mysql中保存图像

时间:2010-05-02 10:50:00

标签: php mysql database image

我的客户在php + mysql中创建了一个脚本,可以直接在数据库中保存图像,每个图像都有这样的URL:www.example.com/image.php?id = 421

在您看来,这是一个非常错误的解决方案?我应该重建所有网站吗?

每天大约有1000次访问,数据库中有大约600张图片。

5 个答案:

答案 0 :(得分:6)

图像文件是文件,除非有令人信服的理由将它们存储在数据库中,它们所属的位置就是文件系统,您可以从中轻松备份和复制,分布在多台计算机上,直接由网络服务器提供,以及网络服务器支持的所有最后修改日期和etag,以实现更好的性能等。

如果预期图像的数量增加,并且预期在即将发布的版本中创建一个图像的不同尺寸(例如缩略图图像等),则强烈建议将图像从db迁移到文件系统。

答案 1 :(得分:3)

是否有充分的理由将它们存储在数据库中?这可能有一些正当理由。我假设这些是客户端图像而不是显示网站本身所需的图像(即背景图像,img标签内的东西)。

至于重建网站。它可能会提高性能,但每天1000次点击可能不值得花时间。假设网站性能可以接受,并且没有产生额外的托管费等。在我重新设计网站之前,我倾向于离开它。

答案 2 :(得分:2)

如果您从评论中读到@ Gazler的链接,那么问题很简单:

  • 表现有问题吗? [Y]
  • 您是存储任何其他信息,还是图像本身? [只是图片]
  • 您计划(或希望)将来吸引更多用户吗? [Y]
  • 你的数据库大小有限吗? [Y]

如果你用括号中的答案回答,那么你的网站将图像从数据库中删除可能会有好处,否则,你可以保持原样并节省一些时间和/或神经

答案 3 :(得分:2)

仅仅因为它可以完成,并不意味着它应该是。

我总是在数据库中存储有关图像(文件名,位置,其他属性)的元数据,并在外部将图像存储在文件系统中。实际上,将图像存储在SQL数据库中几乎没有什么好处。一旦他们在那里,他们非常不方便使用。

答案 4 :(得分:1)

有好有坏。这取决于你是谁。大约5年前,将所有图像放入数据库变得风靡一时。

但是今天服务器空间大小更大,它并不是真正节省空间。

否定的是,您将始终需要了解服务器端编程才能使用图像。如果将这种发展传递给另一个人,那么它可能会成为问题。

据我所知,如果它有效,它可以工作,我看不到性能问题 - 看起来很快。