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