将文本存储为文件或DB更高效?

时间:2009-12-03 18:57:54

标签: database string

想象一下,您正在处理用户输入的大约10,000个字符长的许多文本字符串。将它们自动写入页面或将它们输入到数据库中的表格上会更有效吗?我希望这个问题足够清楚......

6 个答案:

答案 0 :(得分:3)

这取决于你的目标是什么样的“效率”。

这就是我的意思:

  • 您是否会更改文字字符串的内容?
  • 你会做什么样的搜索?
  • 当你提取文本时,你会用它做什么?

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我想知道SQLite是否是这两个世界中最好的,或者至少是那个工作规模最好的数据库。

答案 4 :(得分:0)

真实的答案就是你要对这些字符串做些什么。

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

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

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

这些类型的负载可能比天真的实现更有效,并且仍然可能比正常的更快,即使它确实避免了一些访问层。

答案 5 :(得分:0)

有很多考虑因素。正如其他人所说 - 任何一种方法都适用于少量10k行(数千)。

但你的应用程序的其余部分是做什么的?如果它完成数据库中的所有操作,那么我也倾向于将其放在那里;反之亦然。

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

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

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