Ich versuche, Daten mit Spring jdbc Vorlage abzurufen. Die Tabelle hat Millionen von Datensätzen.So holen Sie Daten aus einer Tabelle mit Millionen von Datensätzen mithilfe von Spring jdbc Vorlage
Die Verwendung des unten stehenden Codes dauert unendlich lange und schließlich muss ich den Code nicht mehr ausführen.
private static final String CLIENTDATA_QUERY = "select logtime, clientip, clientagent, uri from client_data";
public List<ClientDataModel> readFromClientDataDB() {
// jdbcTemplate.setFetchSize(1000);
List<ClientDataModel> clientData = jdbcTemplate.query(CLIENTDATA_QUERY, new RowMapper<ClientDataModel>() {
@Override
public ClientDataModel mapRow(ResultSet rs, int rowNum) throws SQLException {
ClientDataModel model = new ClientDataModel();
model.setLogtime(rs.getString("logtime"));
model.setClientIP(rs.getString("clientip"));
model.setClientAgent(rs.getString("clientagent"));
// model.setUri(rs.getString("uri"));
return model;
}
});
System.out.println("Client Data Size :" + clientData.size());
return clientData;
}
Bitte kann jemand vorschlagen, wie ich Datensätze aus einer riesigen Tabelle auf die effizienteste Weise abrufen kann.
Alle Datensätze müssen abgerufen werden und dann beginnt der Code für die weitere Logik. Dies ist auf der Serverseite.
Paginieren, paginieren, paginieren! Verwenden Sie einen Cursor usw. –
@FedericoPeraltaSchaffner bitte können Sie vorschlagen, was Sie mit dem Cursor meinen. Können Sie auch ein Beispiel geben, wenn möglich. Danke –
können Sie die Datensätze nicht Seite für Seite verarbeiten? Warum müssen Sie zuerst die gesamte Tabelle in den Speicher einlesen? –