我正在处理一些数据库,并需要将每个数据库打印到文件中。我的服务器有5GB的RAM,我为Tomcat服务器分配了4GB。
我使用一个简单的结果集来查询每个数据库的所有行。然后我将每行打印到一个文件中(.dat文件),显然我是分开进行的。
我可以使用包含5738095行的整个结果集工作。
但如果我想处理超过700万行的数据库,我会出现"Java heap space"错误。当我开始处理超过300万行时,我需要向我的服务器添加更多的RAM,因此我的问题是:是将更多的RAM放入我的服务器好呢,还是如何将结果集分成每百万条打印,以避免出现"java heap space"错误。
我一直在考虑计算整个数据库并制定类似于limit 0 offset 1000000、limit 1000000 offset 1000001的东西,但老实说我很困惑。谢谢您的阅读和帮助,也对我的英语表示歉意。
以下是代码:
我使用一个简单的结果集来查询每个数据库的所有行。然后我将每行打印到一个文件中(.dat文件),显然我是分开进行的。
我可以使用包含5738095行的整个结果集工作。
但如果我想处理超过700万行的数据库,我会出现"Java heap space"错误。当我开始处理超过300万行时,我需要向我的服务器添加更多的RAM,因此我的问题是:是将更多的RAM放入我的服务器好呢,还是如何将结果集分成每百万条打印,以避免出现"java heap space"错误。
我一直在考虑计算整个数据库并制定类似于limit 0 offset 1000000、limit 1000000 offset 1000001的东西,但老实说我很困惑。谢谢您的阅读和帮助,也对我的英语表示歉意。
以下是代码:
//numero columnas is the total of columns
rs_datos = StDatos.executeQuery("select * from table");
while(rs_datos.next())
{
for(int i = 0; i < numeroColumnas; i++)
{
if(i+1 == numeroColumnas)
{
pw.print(rs_datos.getString(i+1));
}
else
pw.print(rs_datos.getString(i+1) + "|");
}
pw.println("");
}
pw.close();