首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL还是用于快速存储文件/BLOB的文件系统?

SQL还是用于快速存储文件/BLOB的文件系统?
EN

Stack Overflow用户
提问于 2013-05-21 17:10:47
回答 2查看 1K关注 0票数 0

我有一个应用程序,它使用嵌套的dirs (如“6/0/3/6/.”)将大量出版物存储在文件系统上。文件不是很大(.jpg,.pdf,类似的文档),其中有“只是”很多,运行到GB数百。一旦存储在fs中,通常不会重写它们,只需在http上服务。

在这些文件中进行搜索和版本控制是非常缓慢的。复制这样的脏文件也相当麻烦。

这让我想到:在db中存储BLOB之类的数据会更好吗(我的应用程序无论如何都在使用postgres )。

哪个-- fs或可伸缩的sql -能够在所有方面表现得更好?或者PG会在这么大的压力下崩溃?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-22 00:18:18

对于文件系统来说,增量备份要容易得多。从局部破坏中恢复过来也是如此。在文件系统之上进行版本控制非常容易,只要您不需要原子更改集,只需要单独的文件版本控制。

另一方面,使用DB可以获得事务行为--原子提交、多个并发一致快照等。它会降低磁盘存储效率,并增加访问开销。这意味着您不能直接从文件系统中获取数据,您必须执行多个内存副本和一些编码来获取和发送文件。

对于高性能的服务器,除非您确实需要原子提交和多个版本的同时一致可见性,否则文件系统几乎肯定会获胜。

您可能也应该阅读许多相关的过去问题,大多数问题都是关于在DB中还是在文件系统中存储图像的问题。

票数 1
EN

Stack Overflow用户

发布于 2013-05-21 17:41:48

FileSystem还有其他一些大缺点:

  1. 您可能会遇到用户权限问题。
  2. 非原子性
  3. 慢的

当处理BLOB < 1GB时,我会100%地将它们存储在数据库中,因为所有好的系统数据库都可以正确地处理BLOB。(它们以与结构化数据不同的方式存储它,但对您来说是不可见的)

顺便说一下,当你在http://www.postgresql.org/about/上读到

最大数据库大小=>无限

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16675702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档