2011-10-03 236 views
2

有一个数据库,其中包含约200万条记录。我从我的java代码中运行查询,就像这样“select * from table”。它会从结果集中的数据库中提取完整的数据。或不 。如果是,那么它将如何工作,我想学习在这个检索工作,从数据库中检索一百万条记录

请让我知道,我已经学会了一个地方,它会从数据库中检索完整的数据,并将从那里存储临时存储将显示在输出中。很好。 或者是否有与J2C相关的东西

+2

如果您只使用数据库检索大部分表格,那么使用数据库可能不是最佳选择。当您只需要数据库中的一小部分数据时,数据库的效果最佳。否则,使用文件或更简单的持久性存储可能会更好。从数据库获取2百万个条目将比从文件获得多个时间。 –

回答

0

它会从结果数据库中读取完整的数据集

没有一个准确的答案。它总是依赖于数据库驱动程序。结果集是一个接口,其实现由特定的数据库驱动程序完成。结果集实现可能有有自己的优化,其中对于较小的一组数据,在大型数据集,其缓存(或某种默认分页机制)的地方,所有内容都被提取。所以请参阅数据库驱动程序文档。

有一个标准(至少javadoc这样说)出路,以防止从数据库中获取大量数据。为JDBC语句设置相应的读取大小,如下所示java.sql.Statement.setFetchSize()

作为Java文档

为JDBC驱动程序提供提示以行,应该是 从数据库中取出,需要更多行时的数目。指定的行数 只影响使用此语句创建的结果集。 如果指定的值为零,则提示将被忽略。默认值 值为零。

希望这会有所帮助。

+0

如果我不会设置一次从数据库中检索多少行的大小,那么它会返回300万条记录。 – gaurav

+0

它不会。结果集采用由数据库作为查询结果准备的表格的形式。你得到的是光标到这张表。大多数数据库/驱动程序适用于较大数据集,这通常是这种情况。 – Santosh

相关问题