Boa tarde galera do Guj.
Estou desenvolvendo uma aplicação Java e Mysql, estou com uma dúvida que não sei ao certo se me expressei da forma correta no título do tópico.
Então… essa aplicação tende a armazenar muita informações daqui uns anos… minha dúvida é relacionada ao desempenho em consultas SQL com tabelas com um grande número de linhas.
Quero entender em questão de números em relação ao desempenho, pra poder quem sabe codificar da forma correta os meus selects.
Um dos meus métodos é esse. Ele busca do banco e gera uma lista para popular meu TableModel
public List<compra> buscarCompraTableModel(String tipo) throws SQLException{
listCompraTableModel = new ArrayList<>();
String sql = "select * from compra inner join produto on produtoId = idProduto where tipo = ? and status = ? order by idCompra";
PreparedStatement stm = con.prepareStatement(sql);
stm.setString(1, tipo);
stm.setString(2, "A");
ResultSet rs = stm.executeQuery();
try {
while (rs.next())
{
compra c = new compra();
c.setData(rs.getDate("data"));
c.setIdCompra(rs.getInt("idCompra"));
c.setNomeProd(rs.getString("nome"));
c.setNnota(rs.getString("nNota"));
c.setQuant(rs.getDouble("quant"));
c.setValorKg(rs.getDouble("valorKg"));
c.setObs(rs.getString("obs"));
listCompraTableModel.add(c);
}
con.close();
} catch (Exception e) {
}
return listCompraTableModel;
}
Funciona perfeitamente, no entanto, estou pensando no futuro… quando tiver 1000 ou 50000 linhas na tabela… Como será o desempenho desse código? Existe um limite de armazenamento que não influencia no desempenho? E qual a melhor forma de codificar ?
Obrigado pela atenção de todos

