2009-12-03 112 views

回答

3

这取决于你想要达到什么样的“效率”。

这里就是我的意思是:

  • 你会成为改变你的文本字符串的内容?
  • 你会做什么样的搜索?
  • 当你提取文本时,你会用它做什么?

我的意见是,如果你不会更改内容,也不会执行太多分析,那么最好使用数据库。

+0

+1,询问OP想要处理数据到底是什么。但我会认为,如果你要改变内容或分析很多,文件系统会更好。 – 2009-12-03 19:13:00

+0

我在计划可以频繁编辑内容并搜索字符串的各个位。我将一次提取整个文本块。 – Robbie 2009-12-03 19:14:43

+0

我同意,如果内容频繁变化,OP会比文件系统更好 - 我想我已经明确了! – 2009-12-04 16:21:52

1

取决于你如何访问它们,但通常使用FS会带来更好的性能。这是显而易见的原因,数据库是建立在FS之上的另一层,并直接使用FS,假设没有额外的繁重处理(例如,有100个命名文件,而不是按特殊顺序排列的一个大型文件)解析),将为您节省DBMS操作。

+0

同意了,尽管它_really_取决于。特别是关于他们是否会被更改,以及是否需要重新设计静态页面 – rmeador 2009-12-03 18:59:54

+0

rmeador是对的,我假设这个问题只是关于查找和读取数据。 TrippyD也有一点--10K记录的数据量不够大,实际上感觉不到任何差异。 – synhershko 2009-12-03 19:03:15

2

10k不是特别大,所以要么很好。我会亲自使用数据库,因为它可以让你轻松搜索。

0

我在想,如果SQLite是两全其美的,或者至少,这个大小的工作最好的数据库。

0

真正的答案她是你要用这些字符串做什么。

数据库旨在能够快速返回特定的记录。如果你只是选择SELECT * FROM Table,然后将它们连接在一起,那么使用数据库就毫无意义。

但是,如果您希望能够搜索的数据之间有关系,那么数据库可能会更有效。

E.G.,您是否希望能够在一组日期中提取一组用户的所有文本记录?查找匹配某些记录的用户的所有记录?

这些类型的负载可能比天真的实现效率更高,即使它避免了某些访问层,仍然可能比体面的更快。

0

有很多的考虑。正如其他人所说 - 任何一种方法对于少数10k行(数千)都可以正常工作。

但是你的应用的其余部分是做什么的?如果它完成了数据库中的所有内容,那么我也倾向于把它放在那里;相反的情况也是如此。

你将如何选择这些?你需要做复杂的文字搜索吗?如果是这样,数据库可能不是最好的。或者,你会添加新的属性,搜索这些属性 - 还是将它们与其他表中的数据进行匹配?在这种常见的情况下,数据库会更好。

如果您的数据非常庞大(数百万行),并且您的性能要求不是非常高 - 您可能需要对它们进行压缩并将它们存储在文件系统中。

最后,数据质量有多重要?鉴于良好数据库的功能,使用数据库保证良好的数据质量要容易得多。

相关问题