IO与数据库:哪个更快?

时间:2014-04-05 09:24:33

标签: java mysql performance io bufferedreader

想象一下,我有1GB大小的txt文件。在我的Java程序中,我正在阅读这个"逐行"使用BufferedReader

想象一下,我还有一个MySQL数据库,其中包含1GB文件的每一行作为新行。我正在阅读这个"一排一排"在我的Java程序中。

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

1 个答案:

答案 0 :(得分:1)

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

如果数据库已预热(运行一段时间),则会在内存中占用很多。在这种情况下,数据库可能更快,在同一台机器上运行。但升温需要相同的查询,但实际情况并非如此。那就是:一旦MySQL必须首先在内存中读取所有内容。数据库的另一个优点是,当您处于resultSet.next()步时,数据库可能已经读取了以下记录。我不知道MySQL JDBC是否聪明。

从消极方面来说,必须建立连接,并对数据进行编组。

使用BufferedReader,你仍然可以做你的线处理时间是一个单独的线程 (或者甚至更多的线程),因此MySQL没有真正的(或非波士顿的)优势。