【问题标题】:Is PostgreSQL for storing images for a low traffic project reasonable?PostgreSQL 为低流量项目存储图像是否合理?
【发布时间】:2017-12-02 08:15:02
【问题描述】:

我在这里阅读了几个关于为什么 SQL 中的二进制文件/图像可能是一个坏主意的答案(例如,增加备份时间,会使查询变慢)。我们的项目是:

  • 我们必须在线存储大约 5000 张图片,每张最多 1MB,因此总共需要大约 5GB 的存储空间以及每张图片的一些元数据。未来不太可能变得更复杂。

  • 我们将提供一个 CMS,让您可以修改/上传照片。可能一次只有一个人会使用它。

  • 我们有一个在单台计算机上运行的应用程序,它将保留所有照片的副本以加快显示速度(即,当 CMS 添加照片时,我们将有一些方法来同步它图像到应用程序)。举个例子,假设这个应用程序是一个不断运行的幻灯片。

计划是使用 AWS 或 Heroku 之类的东西来托管具有自动备份功能的 SQL 数据库,并且元数据+图像将存储在数据库中。

这个的最大优点是使用例如用于图像的 S3 + 用于元数据的数据库很简单。鉴于数据库的使用率很低,我认为速度不是问题。慢速备份似乎也不是问题。对于这个项目,成本和低维护也很重要。

这似乎是一个明智的设计还是会遇到问题?有没有像我所缺少的那样简单的东西?

【问题讨论】:

  • 我想你已经想到了解决方案并得出了一个合理的解决方案。您实际上是在将数据库用于存档目的,并且您已经考虑了利弊。
  • @GordonLinoff 谢谢。我想我已经阅读了“不要将图像存储在数据库中!!!”的建议。所以很多时候感觉99%的时候这是错误的事情。在合理的情况下,某种经验法则将有助于抵消我在这里做错了什么的感觉。对我来说,规则似乎是,如果简单性是一个重要因素,您存储的数据可能不会超过 50GB,并且图像不会被太频繁地提供(例如,不要为公共站点这样做)然后图像数据库是个好主意。
  • 。 .这取决于很多因素。通常,在数据库中存储大 blob 不应该是默认选项,除非您使用专门为此目的设计的数据库。但是,与大多数有关数据库的规则一样,当您仔细考虑问题并了解其后果时,通常情况下正确的内容可能并不正确。

标签: sql postgresql amazon-web-services heroku amazon-s3


【解决方案1】:

我相信 pg_dump 会将您的图像 blob 转储为十六进制,因此转储文件可能很大。我也不会假设一个 1MB 的图像只会在数据库中消耗 1MB。

用一千张相同的图像进行测试,看看你的假设是否成立。

【讨论】:

    猜你喜欢
    • 2011-05-27
    • 2011-11-04
    • 2020-06-28
    • 1970-01-01
    • 2015-07-01
    • 2010-09-08
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多