2010-05-02 50 views
2

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

你认为这是一个非常错误的解决方案?我应该重建所有的网站吗?

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

+2

http://www.phpriot.com/articles/images-in-mysql/2 < - 你决定 – Gazler 2010-05-02 10:54:41

+0

@Gazler下面的链接不工作。它在我的最后显示404。 – 2015-01-24 13:43:13

回答

6

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

如果图像的数量预计会增加,并且预期将创建不同尺寸的一个图像(例如缩略图图像等),强烈建议将图像从数据库迁移到文件系统的计划。

3

将它们存储在数据库中是否有很好的理由?可以有一些有效的理由来做到这一点。我假设这些客户端图片不是显示网站本身所需的图片(即背景图片,img标签内的东西)。

至于重建该网站。这可能会提高性能,但是一天下载1000次,可能不值得花费时间。假设网站性能可以接受,并且不会产生额外的托管费用等。我将倾向于保留它,直到我重新设计网站。

2

如果你读@从评论Gazler的链接,它真的可以归结为几个问题:

  • 有与任何性能问题? [Y]
  • 你是否存储任何附加信息,或只是图像本身? [只是图片]
  • 你计划(或希望)在未来吸引更多的用户吗? [Y]
  • 你有限的大小你的分贝? [Y]

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

1

有好有坏的一点。这取决于你是谁。大约5年前,将所有图像放入数据库变得非常流行。

但是今天服务器空间变大了,它并不是真的节省空间。

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

据我所见,如果它能正常工作,它就能正常工作,而且我看不到性能问题 - 看起来很快。

2

只是因为它可以做到,并不意味着它应该是。

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