【问题标题】:Which is better: Many files or a singular file with a lot of data哪个更好:许多文件或具有大量数据的单个文件
【发布时间】:2015-08-30 11:55:56
【问题描述】:

我正在处理许多单独的数据条目,不幸的是我不懂 SQL,所以我需要知道哪种方法存储数据更快。

我有数百个(如果不是数千个)存储用户数据的单个文件。在这种情况下,它们都是字符串列表,没有别的,所以我一直在逐行列出它们,根据需要访问文件。不需要加密。

test
buyhome
foo
etc. (About 75 or so entries)

最近我学会了如何使用 JSON 并且有一个问题:将这些作为单独的文件保留以根据需要读取,或者作为一个非常大的 JSON 文件保存在内存中会更快吗?

【问题讨论】:

    标签: json


    【解决方案1】:

    内存访问将总是比磁盘访问快得多,但是如果您的内存数据被修改并且系统崩溃,您将丢失该数据,如果它没有被保存到持久数据存储的形式。

    鉴于您说您正在使用的数据量,您确实应该使用某种数据库。要么放弃一切,去学习一些 SQL(基础知识并不难),要么利用你对 JSON 的了解,研究像 MongoDB 这样的 NoSQL 数据库。

    您会发现,从长远来看,使用正确的工具来完成工作通常比试图强制使用当前必须使用的工具为您节省更多时间。即使您需要提前投入一些时间来学习新知识。

    【讨论】:

      【解决方案2】:

      第一件事是:不要将数据保存在内存中。除非您正在创建像 SO 或 Reddit 这样的门户,否则 RAM 作为存储是一个坏主意。

      第二件事是:读取文件很慢。打开和关闭文件也很慢。尽量减少文件数量。

      如果您要使用这些文件中的每一个(关键问题是每个),请将它们放在一起。如果您只需要其中一些,请将它们分开存放。

      【讨论】:

      • 将数据保存在内存中并不是坏事。如果没有关于 Ethan 正在运行哪种程序的更多信息,不将数据保存在内存中的一般建议会产生误导。
      • 他不懂 SQL - 这意味着他还有一些学习需要。在他漫长的道路上的这一点上,“不要将数据保存在内存中”是一个通用提示,它将使他的生活更轻松。在某些情况下可以这样做,但他可能需要更多的经验和知识来处理它们。 @Ethan Z:没有冒犯,重要的是你正在学习,而不是你还没有学到所有东西。
      • @fillip,我只是一名高中生,所以这只是在我的空闲时间。我很想学习 SQL,但我现在没有更多时间。
      • 当然,我明白了,我的情况类似;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多