Junior — Middle
Que abordagens usar para melhorar a eficiência das operações de inserção de dados na base de dados após a implementação de índices?
sobes.tech IA
Resposta da IA
Após adicionar índices, as operações de inserção podem ficar mais lentas, pois os índices requerem atualização a cada inserção. Para melhorar a eficiência das inserções, pode-se usar as seguintes abordagens:
- Inserção em lote (batch insert): agrupar várias entradas numa única operação de inserção para reduzir os custos de transação e atualização de índices.
- Desativar ou adiar a atualização de índices: desativar temporariamente os índices durante a carga massiva de dados e depois reconstruí-los.
- Uso de transações: envolver as inserções em transações para diminuir o número de commits.
- Otimização de índices: manter apenas os índices necessários, pois cada índice desacelera a inserção.
- Uso de ferramentas especializadas de carregamento de dados (por exemplo, utilitários de carga em massa), otimizadas para inserções em grande escala.
Exemplo de inserção em lote no JDBC:
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
try (PreparedStatement ps = connection.prepareStatement(sql)) {
for (User user : usersList) {
ps.setString(1, user.getName());
ps.setString(2, user.getEmail());
ps.addBatch();
}
ps.executeBatch();
}