我在.txt文件上有一个大数据库,我想知道什么更快,每次我想访问文件时都从文件中读取数据,或者在程序启动时将所有数据加载到变量中,这样我就可以从变量本身访问它。
PS:也许知道我用java编程很重要,但这是一个更普遍的问题。
假设你有一秒钟的完美回忆,但你可以选择忘记。
现在,什么更快?
-
阅读这本书,记住所有内容,然后根据需要回忆。
-
不要读这本书。当你需要一些信息时,浏览一下这本书,只寻找你需要的一小部分信息,而忘记其余的。当你需要更多信息时,再次浏览这本书。但你甚至不知道信息在书中的哪里,因为你一点都不记得,所以每次你都需要从头开始读这本书。
显然,#1的速度非常快。当然,这需要你的大脑能够记住这一切,但就表现而言,根本没有可比性。
例外:如果你只需要一条信息,#2会更快,因为你可以在找到需要的信息后立即停止阅读,也就是说,你不必阅读整本书。
简短回答
可变
长答案
读取文件是一项相当缓慢的操作。它涉及到访问磁盘,这明显比访问内存中已有的变量慢。注意,当你读取文件时,你需要将其存储在内存中的某个位置,因此你也要为访问内存付出时间
你可以拿一些阅读文件的例子来衡量它花了多长时间。记住多次运行代码,这样你就能得到更准确的结果
您应该考虑的另一点是您对数据库的使用情况。如果您只存储了几个值,那么可以使用txt文件。但一旦存储层变得更加复杂,您可能需要一个合适的数据库(例如MySQL、DynamoDB、Mongo(