我的客户在php + mysql中创建了一个脚本,可以直接在数据库中保存图像,每个图像都有这样的URL:www.example.com/image.php?id = 421
在您看来,这是一个非常错误的解决方案?我应该重建所有网站吗?
每天大约有1000次访问,数据库中有大约600张图片。
答案 0 :(得分:6)
图像文件是文件,除非有令人信服的理由将它们存储在数据库中,它们所属的位置就是文件系统,您可以从中轻松备份和复制,分布在多台计算机上,直接由网络服务器提供,以及网络服务器支持的所有最后修改日期和etag,以实现更好的性能等。
如果预期图像的数量增加,并且预期在即将发布的版本中创建一个图像的不同尺寸(例如缩略图图像等),则强烈建议将图像从db迁移到文件系统。
答案 1 :(得分:3)
是否有充分的理由将它们存储在数据库中?这可能有一些正当理由。我假设这些是客户端图像而不是显示网站本身所需的图像(即背景图像,img标签内的东西)。
至于重建网站。它可能会提高性能,但每天1000次点击可能不值得花时间。假设网站性能可以接受,并且没有产生额外的托管费等。在我重新设计网站之前,我倾向于离开它。
答案 2 :(得分:2)
如果您从评论中读到@ Gazler的链接,那么问题很简单:
如果你用括号中的答案回答,那么你的网站将图像从数据库中删除可能会有好处,否则,你可以保持原样并节省一些时间和/或神经
答案 3 :(得分:2)
仅仅因为它可以完成,并不意味着它应该是。
我总是在数据库中存储有关图像(文件名,位置,其他属性)的元数据,并在外部将图像存储在文件系统中。实际上,将图像存储在SQL数据库中几乎没有什么好处。一旦他们在那里,他们非常不方便使用。
答案 4 :(得分:1)
有好有坏。这取决于你是谁。大约5年前,将所有图像放入数据库变得风靡一时。
但是今天服务器空间大小更大,它并不是真正节省空间。
否定的是,您将始终需要了解服务器端编程才能使用图像。如果将这种发展传递给另一个人,那么它可能会成为问题。
据我所知,如果它有效,它可以工作,我看不到性能问题 - 看起来很快。