2010-06-14 47 views
3

在我正在处理的应用程序中,我们使用MySQL数据库并希望将文章存储在表中。我们不是将它们存储在一个SQL DB中,而是将这篇文章的关键字存储在NoSQL数据库中。这是使用NoSQL解决的一个很好的问题,或者我们应该在MySQL中创建另一个表并将大量文本存储在那里?在NoSQL DB中存储一列?

我们正在研究使用MongoDB来存储文本。

+1

问题是,你想解决什么问题? – 2010-06-14 18:45:04

+0

我正试图解决必须避免在单个MySQL表中存储大量数据的问题,这会在将数据放入新列中时发生。我可以解决这个问题,即将文本数据分离到另一个表中,但是我必须加入,在这种情况下,从NoSQL DB中检索它可能会更快。 – tesserakt 2010-06-14 19:01:08

回答

1

我要做的第一件事是检查MySQL如何运行“大量数据”。如果你获得了可以接受的性能,那么试图让系统变得更加复杂是毫无意义的。

将文本内容放入MySQL中的单独表中将无法完成任何操作。把它放到一个单独的DB 可能的帮助,但我不会这样做,除非你确定MySQL是一个重要的瓶颈,并且你不能做任何事情,比如优化你的查询。

+0

在MYSQL中,即使这会显着增加表的大小,它是否会更快地保持在同一个表中? – tesserakt 2010-06-14 19:30:19

+1

没关系,我发现mySQL中文文本类型可以存储大量文本,并且因为它只是在文件系统中的某个位置创建一个引用,所以不会减慢数据库查询的速度。现在将数据保存在mySql中会更好。 – tesserakt 2010-06-14 19:38:34

0

MongoDB擅长存储大型blob-ish字段,无论是文本还是二进制。所以我认为这是一件好事。

上有4MB的BSON对象(MongoDB的 “记录”)的限制。如果您的文本字段大于4MB,则可以使用GridFS,然后没有限制。

+0

这会比将数据保存在mySQL中快吗? – tesserakt 2010-06-14 19:32:25