Java 什么';从txt文件或变量读取数据更快?

Java 什么';从txt文件或变量读取数据更快?,java,database,txt,Java,Database,Txt,我在.txt文件上有一个很大的数据库,我想知道什么更快,每次我想访问它时都从文件中读取数据,或者在程序启动时将所有数据加载到变量中,这样我就可以从变量本身访问它 PS:也许知道我用java编写代码很重要,但这是一个更一般的问题。简短回答 变数 长答案 读取文件是一个相当慢的操作。它涉及到访问磁盘,这明显比访问内存中已有的变量慢。而且要注意,当你读取文件时,你需要将它存储在内存中的某个地方,因此你需要支付访问内存的时间 您可以使用一些示例来阅读一个文件并测量它花费了多长时间。请记住运行代码几次,以

我在.txt文件上有一个很大的数据库,我想知道什么更快,每次我想访问它时都从文件中读取数据,或者在程序启动时将所有数据加载到变量中,这样我就可以从变量本身访问它


PS:也许知道我用java编写代码很重要,但这是一个更一般的问题。

简短回答

变数

长答案

读取文件是一个相当慢的操作。它涉及到访问磁盘,这明显比访问内存中已有的变量慢。而且要注意,当你读取文件时,你需要将它存储在内存中的某个地方,因此你需要支付访问内存的时间

您可以使用一些示例来阅读一个文件并测量它花费了多长时间。请记住运行代码几次,以便获得更准确的结果


你应该考虑的其他点是你正在使用的数据库。如果您只是存储了几个值,那么可以使用txt文件。但是一旦你的存储层变得更复杂,你可能就需要一个合适的数据库(例如MySQL、DynamoDB、Mongo)

假设你拥有完美的回忆,但你可以选择忘记

现在,什么更快

  • 读这本书,记住一切,然后根据需要回忆起

  • 不要读这本书。当你需要一些信息时,浏览一下这本书,只寻找你需要的一小部分信息,其余的就忘了。当你需要更多信息时,再浏览一遍,但你甚至不知道信息在书中的什么地方,因为你一点都不记得,所以每次你都需要从头开始阅读

  • 显然#1是非常非常快的。当然,这需要你的大脑能够记住所有的东西,但就表现而言,根本没有比较


    例外情况:如果你只需要一条信息,#2会更快,因为你一找到所需信息就可以停止阅读,也就是说,你不必阅读整本书。

    可能会被其他人的答案扩展,但在大多数情况下,如果不是所有情况,也可能是一次读到内存(也称为变量赋值)单次读取文件要比每次需要变量时读取文件快得多。您可以轻松地自己创建一个示例。我可以想象的唯一例外是,您无论如何只读取文件一次,例如,如果您只需要一个值一次,并且永远不会再打开该文件。即使如此,您也会以某种方式读取该文件变量的值。这是否回答了您的问题?