我有一个包含许多表和数据的数据库。为了导入数据库,查询
LOAD DATA INFILE <file_name> INTO TABLE <table_name>;
为每个表使用。数据库是通过临时表导入的,由于数据库包含大量数据,需要很长时间。当数据增加时,导入需要无限时延。我该如何解决这个问题?
public void updateDeviceTables(Connection server) throws SQLException
{
final Connection DestConn = server;
try
{
PreparedStatement psInsert;
final PreparedStatement psTrapDest = DestConn
.prepareStatement("select * from TEMP_TABLE_NAME where PRIMARY_KEYID=? ");
psTrapDest.setInt(1, OldID);
final ResultSet rsTrapDest = psTrapDest.executeQuery();
while (rsTrapDest.next()) {
psInsert = DestConn.prepareStatement(SQLQueries.INSERT_TABLE_DETAILS);
psInsert.setInt(1, NewID);
psInsert.setObject(2, rsTrapDest.getObject("Column2"));
psInsert.setObject(3, rsTrapDest.getObject("Column3"));
psInsert.executeUpdate();
psInsert.close();
psInsert = null;
}
rsTrapDest.close();
}
catch (final Exception e)
{
}
}
这是我在将数据导入临时表后用于更新表的示例代码。对数据库中的所有表(17 个表)重复相同的过程。调试卡在 executeUpdate()中。