我在让用户上传图片到我的应用程序时遇到了困境。我的主机允许无限制的存储空间,但只允许250K个人文件。我在125K,我计划发布一个功能,允许用户上传图片。如果我开始上传大量图片,我可以快速填充该配额。我想过把它们存储在MySQL等数据库中。这是一个可行的解决方案,还是仅仅是愚蠢的?如果它只是愚蠢的,那么一些免费/廉价的选择会是什么?在数据库中存储大量图像是愚蠢的吗?
回答
是的,把图像数据放在一个分贝将是一种愚蠢的。
我会看看使用像Amazon S3存储的东西。
这是一个CodingHorror帖子,几年前杰夫在这里讨论它。
使用数据库显然比使用文件系统慢。如果你已经有125k,也许使用VPS而不是托管是一个好主意。这是约5-10美元/星期一。
什么?你可以在哪里获得5-10美元/月的VPS? – LordZardeck
http://www.hetzner.de/hosting/produkte_vserver/vq7(我用这个满足我的小小需求) – Ximik
真是棒极了。我可能最终将其用于某些副项目。 – LordZardeck
我个人不会那么做。它最终会在以后导致更多问题。 为什么不登录http://www.000webhost.com/(或类似)并创建脚本来上传图片而不是服务器?这是我会做的。
或者,您可以开始设置图片保存期限的限制吗?并在x天后删除它们?
您可以选择将图像存储在CDN或s3之类的选项吗?从服务器上获取图像并获得快速基础架构的好处。更多这里:http://aws.amazon.com/cloudfront/
如果您需要保护图像但更加可行,则会更复杂。
有很多很好的理由将图像(或任何庞大的媒体文件)存储在数据库之外。
将将图像存储在数据库中的原因是如果您需要图像数据以使用SQL ACID语义。
例如,如果您在数据库中插入一行但回滚,则您希望图像数据也被丢弃。如果将图像数据从外部存储到数据库,则必须清理孤立的图像。 同样,如果你从数据库中删除行,你也必须记得从磁盘或S3或其他东西中删除它们。 同样,如果你更新行,你会失去事务隔离,所以你有竞争条件。
如果您将图像存储在数据库之外,还需要创建数据库备份。不仅因为现在您的备份是一个多步骤过程(备份数据库,然后是备份映像收集),而且您也无法创建热备份。在备份从数据库复制数据的过程中,您的映像集可能会在分钟内发生更改。
+1对于一些非常有用的信息。由于这不是一个重要的企业项目,我不认为我必须担心需要将图像存储在数据库中。感谢分享! – LordZardeck
- 1. Rails:Heroku中的Postgres数据库(可能是愚蠢的问题)
- 2. 在数据库中存储base64编码图像是明智吗?
- 3. 将大量图形数据结构存储在数据库中
- 4. Android,存储大量链接到数据库的小图像
- 5. 愚蠢的WPF数据绑定问题
- 6. 愚蠢的数学问题
- 7. 在数据库中存储图像
- 8. 图像存储在mysql数据库中
- 9. 在mvc数据库中存储图像
- 10. 在数据库中存储图像
- 11. 在数据库中存储图像
- 12. 在数据库中存储图像
- 13. 将图像存储在数据库中
- 14. Intelisense很愚蠢
- 15. 愚蠢的JS FUNC
- 16. 将大量图像存储在数据库中?一个很好的体验?
- 17. 我应该在SQLite数据库中存储图像吗?
- 18. 如何在图库中存储SQLite数据库中的图像
- 19. 在android中存储大量图像
- 20. Android:从URI中存储的图像缩略图库存储在数据库中
- 21. 是否存在从数据存储库/数据库中持久存储图像的库
- 22. 在MySQL数据库中存储大量数据的问题
- 23. 没有WAMP/XAMPP的windows上的php ...这是一个愚蠢的愚蠢?
- 24. 如何处理愚蠢的设计数据库?
- 25. 存储大量图像android
- 26. 存储大量图像
- 27. Android存储大量图像
- 28. 愚蠢的组件应该如何“愚蠢”?
- 29. Phonegap数据库问题 - 将图像存储在数据库中
- 30. 显示作为图库存储在数据库中的图像
这看起来像我最好的选择。它超级便宜。我认为带宽成本不会像我的存储一样成为问题。 :P。非常感谢! – LordZardeck
不客气! :) – tzaman