在数据库中存储大文本数据

时间:2014-01-02 07:36:46

标签: node.js text text-files

我正在尝试建立一个博客网站(某种程度)。 用户可以编写大型博客(或文本),也可以自定义设置,如字体,大小,文本颜色等(类似于堆栈中的帖子溢出更多。我期待使用mongo-db或couch-base作为数据库部分。现在我在一些事情上感到困惑

  • 我应该在哪里存储博客或帖子?在数据库或文本文件中?如果在数据库中我将​​如何存储字体,大小,颜色(用户可以有不同的字体,不同部分的帖子大小)?帖子有时可能非常大,因此建议将这些大文本存储在数据库中。我看到将它们存储为文件(文本文件)的更简单的选项,但我担心网站的性能,因为加载文本文件在网站中可能很慢。 只是为了知识,谷歌如何存储谷歌文档文件?
  • 我应该使用更适合处理我提到的那种 数据库 吗?
  • 虽然 在帖子中完整搜索文本 不是我现在正在研究的功能,但可能会在之后。所以也可以考虑一下你的答案。

请帮帮我。

1 个答案:

答案 0 :(得分:4)

老实说MongoDB是我们NodeJS项目的最佳数据库。在它拥有4MB最大BSON文档大小之前,它已经增加到8 MB,现在增加到最新版本的16 MB。这实际上是相当多的文本。根据我的计算,你应该能够在一个16MB的对象中存储2097152个字符(虽然这包括开销)

请注意,您可以使用GridFS轻松地将文本拆分为单独的BSON文档。

我看到你很喜欢使用平面文件。虽然这可能很容易和快速,但您很难将文本编入索引以供日后使用。 MongoDB能够为您的所有文本编制索引,实现搜索将是一个相当容易添加的功能。

MongoDB非常快,我毫不怀疑它将是最快的数据库解决方案。与基于SQL的数据库相比,NodeJS + MongoDB的开发使我公司的项目花费了数月。我也看到了一些非常令人印象深刻的performance reviews。请记住,那些表现评论是去年的,我看到了更令人印象深刻的评论,但这是我今天很容易找到的。