2014-11-23 81 views
1

我们正在设置一个Web应用程序(目前正在启动)。 Web应用程序将根据需要处理的JSON文件的数量快速增长。我们可能在谈论5-10万个文件。单个JSON文件并不特别大 - 可能在每个文件150K的区域。文件不太可能被同时访问,因此个人用户拥有他们的单个文件集。存储大量JSON文件的位置

我想放出来根本就如何最好地保存JSON文件的问题。 CDN是链接存储在关系数据库中的最佳选择?或者我应该跳上这条路,走下NoSQL数据库的路线?或者也许还有其他解决方案,我没有想过?

真的找一些好的建议,最好从别人有关大型数据库的经验。

非常感谢提前!!!!

Markus

回答

0

我会考虑调查MongoDB,因为它已经以json格式存储它的文档。 你也可以将它固定在一个普通的关系数据库中,但在mongo中使用json文档的好处在于,你将拥有针对这些文档的查询能力,所以你不必总是加载整个文档。

+0

感谢您的意见。如果我不需要查询文件(永远),该怎么办?它们仅用于向Web应用程序用户提供内容。 – Markus 2014-11-23 21:00:03

+0

我想你可以使用所有建议的解决方案,但我可能会认为这可能是一个维护问题,用这么多的文件部署你的应用程序。 – TGH 2014-11-24 02:39:08

+0

维护是我们的主要关注之一。再次感谢您的评论! – Markus 2014-11-24 11:26:22

0

如果你想要的是快速访问一次写入多次读取的存储类型,那么你也可以考虑DBM。它速度快,价格便宜,可靠。

假设你将压缩文件内容,JSON的烦躁可能是从存储角度来看,非要素。

可靠性 - 你能忍受一些统计损失吗?如果没有,全部或半身的数据库是唯一剩下的选择。如果不是,基于文件系统的存储可能是一种选择。在整个数据完整性检查中,文件系统并不像数据库那样狂热。他们得到更好的支持。提供文件更容易;但跟踪版本需要花费更多设计时间。足够常见的模式是将文件系统中的产品映像和其他资料提供给文件系统,同时将其他数据保存在rdbms中。

如果考虑CDN - >关系数据库则也考虑CDN - > {文件系统,索引节点},在保持文件的数量方面明确地平衡文件系统。

的NoSQL数据库MongoDB的一样,可能有重新启动和恢复时间超出了你的承受能力。否则,它是很棒的工具。许多RDBMS具有原始分区支持以获得更好的IO。在150KB时,必须使用TEXT或CLOB字段,这只是一个小小的烦恼。

HTH。如果您分享了您实际使用的内容,将会很感激。

+0

感谢您的意见。我们目前正在玩弄它。一种解决方案可能是为付费客户提供(CDN和RDBMS免费部分工具)和NoSQL。很难知道一旦大量数据出现后事情会如何发生。一旦它运行起来,我将用更多的具体信息和其他有趣的措施来报告!再次感谢!! – Markus 2014-11-24 11:25:43