Optimisation de l'insertion de plusieurs lignes dans MySQL avec Java à l'aide de PreparedStatement
Dans la programmation de bases de données, l'insertion efficace de plusieurs lignes dans une table est cruciale pour les performances. Cet article explique comment optimiser l'insertion de plusieurs lignes dans MySQL à l'aide de PreparedStatement de Java.
Contexte
Auparavant, une simple boucle était utilisée pour insérer des lignes une par une, ce qui pourrait être inefficace. Pour améliorer les performances, nous visons à utiliser la syntaxe prise en charge par MySQL qui permet d'insérer plusieurs lignes dans une seule instruction.
Utilisation du traitement par lots PreparedStatement
MySQL propose le traitement par lots comme moyen d'exécuter plusieurs déclarations en tant que groupe. Avec PreparedStatement, nous pouvons y parvenir en ajoutant des données de ligne individuelles à un lot à l'aide de la méthode addBatch(). Une fois que le lot est terminé ou atteint une limite de taille spécifique, nous pouvons exécuter l'intégralité du lot à l'aide d'executeBatch().
Vous trouverez ci-dessous un exemple de traitement par lots avec PreparedStatement :
public void save(List<Entity> entities) throws SQLException { try ( Connection connection = database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT); ) { int i = 0; for (Entity entity : entities) { statement.setString(1, entity.getSomeProperty()); // ... statement.addBatch(); i++; if (i % 1000 == 0 || i == entities.size()) { statement.executeBatch(); // Execute every 1000 items. } } } }
Le traitement par lots améliore les performances. en réduisant les allers-retours vers la base de données et en permettant au serveur d'exécuter plusieurs instructions efficacement.
Supplémentaire Ressources
Pour plus d'informations sur le traitement par lots JDBC :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!