【问题标题】:Saving images in database mysql将图像保存在数据库mysql中
【发布时间】:2011-02-14 17:48:12
【问题描述】:

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

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

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

【问题讨论】:

标签: php mysql database image


【解决方案1】:

仅仅因为可以做到,并不意味着就应该做到。

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

【讨论】:

    【解决方案2】:

    图像文件是文件,除非有令人信服的理由将它们存储在数据库中,否则它们所属的位置是文件系统,在那里您可以获得简单的备份和复制等好处,分布在多台机器上,直接由网络服务器提供服务,以及网络服务器支持的所有 last-modified-date 和 etag 以获得更好的性能等。

    如果图像数量预计会增长,并且预计在即将发布的版本中创建不同大小的图像(例如缩略图等),强烈建议将图像从数据库迁移到文件系统的计划。

    【讨论】:

      【解决方案3】:

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

      但如今服务器空间越来越大,实际上并不是为了节省空间。

      不利的是,您始终需要了解服务器端编程才能使用图像。如果这种发展我被传递给另一个人,它可能会被证明是有问题的。

      据我所知,如果它有效,它就有效,而且我看不到性能问题 - 它似乎非常快。

      【讨论】:

        【解决方案4】:

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

        • 性能有问题吗? [是]
        • 您是否存储任何附加信息,还是仅存储图像本身? [只是图片]
        • 您是否计划(或希望)在未来吸引更多用户? [是]
        • 您的数据库大小是否受到限制? [是]

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-05-07
            • 2014-09-05
            • 2012-09-05
            • 1970-01-01
            • 2020-06-01
            • 1970-01-01
            • 2023-03-15
            • 2011-02-02
            相关资源
            最近更新 更多