有一个数据库,其中包含约200万条记录。我从我的java代码中运行查询,就像这样“select * from table”。它会从结果集中的数据库中提取完整的数据。或不 。如果是,那么它将如何工作,我想学习在这个检索工作,从数据库中检索一百万条记录
请让我知道,我已经学会了一个地方,它会从数据库中检索完整的数据,并将从那里存储临时存储将显示在输出中。很好。 或者是否有与J2C相关的东西
有一个数据库,其中包含约200万条记录。我从我的java代码中运行查询,就像这样“select * from table”。它会从结果集中的数据库中提取完整的数据。或不 。如果是,那么它将如何工作,我想学习在这个检索工作,从数据库中检索一百万条记录
请让我知道,我已经学会了一个地方,它会从数据库中检索完整的数据,并将从那里存储临时存储将显示在输出中。很好。 或者是否有与J2C相关的东西
它会从结果数据库中读取完整的数据集
没有一个准确的答案。它总是依赖于数据库驱动程序。结果集是一个接口,其实现由特定的数据库驱动程序完成。结果集实现可能有有自己的优化,其中对于较小的一组数据,在大型数据集,其缓存(或某种默认分页机制)的地方,所有内容都被提取。所以请参阅数据库驱动程序文档。
有一个标准(至少javadoc这样说)出路,以防止从数据库中获取大量数据。为JDBC语句设置相应的读取大小,如下所示java.sql.Statement.setFetchSize()
。
作为Java文档
为JDBC驱动程序提供提示以行,应该是 从数据库中取出,需要更多行时的数目。指定的行数 只影响使用此语句创建的结果集。 如果指定的值为零,则提示将被忽略。默认值 值为零。
希望这会有所帮助。
这里几乎是同一个问题。 How to handle huge result sets from database
你问是否会获取完整的数据集。它会。因此,建议不要获取整个数据库。下面是一些关于它的已保存java - mysql - select query outfile - where is file getting saved
如果您只使用数据库检索大部分表格,那么使用数据库可能不是最佳选择。当您只需要数据库中的一小部分数据时,数据库的效果最佳。否则,使用文件或更简单的持久性存储可能会更好。从数据库获取2百万个条目将比从文件获得多个时间。 –