Java IO与数据库:哪个更快?

Java IO与数据库:哪个更快?,java,mysql,performance,io,bufferedreader,Java,Mysql,Performance,Io,Bufferedreader,假设我有1GB大小的txt文件。在我的Java程序中,我正在使用BufferedReader逐行阅读这篇文章 假设我还有一个MySQL数据库,它将1GB文件的每一行都作为一个新行包含在内。我正在Java程序中“逐行”阅读这篇文章 现在,在这种情况下,读取文件或数据库哪个操作更快?为什么?BufferedReader速度更快。但解释有点复杂 在数据库预热(运行一段时间)的情况下,会占用大量内存。在这种情况下,数据库可能会更快,在同一台机器上运行。但热身需要同样的查询,但事实并非如此。也就是说:一旦

假设我有1GB大小的txt文件。在我的Java程序中,我正在使用
BufferedReader
逐行阅读这篇文章

假设我还有一个
MySQL
数据库,它将1GB文件的每一行都作为一个新行包含在内。我正在Java程序中“逐行”阅读这篇文章


现在,在这种情况下,读取文件或数据库哪个操作更快?为什么?

BufferedReader速度更快。但解释有点复杂

在数据库预热(运行一段时间)的情况下,会占用大量内存。在这种情况下,数据库可能会更快,在同一台机器上运行。但热身需要同样的查询,但事实并非如此。也就是说:一旦MySQL必须首先读取内存中的所有内容。数据库的另一个优点是,当您在执行一个
resultSet.next()
步骤时,数据库可以读取以下记录。我不知道MySQL JDBC是否那么聪明

在负面方面,必须建立连接,并编组数据

使用BufferedReader,您仍然可以在单独的线程中处理行
(甚至更多线程),因此MySQL没有真正(或根本)的优势。

性能不是唯一的考虑因素。你还需要考虑架构、故障点、……例如,为什么在两个地方有相同的数据?它们失去同步的风险是什么?结果是什么?问题是关系模型没有顺序的概念;如果您需要访问(比如)一系列行,那么您必须为此向数据库中添加补充信息(可能还需要编制索引)