Maison > base de données > tutoriel mysql > Comment PreparedStatement peut-il améliorer les insertions multi-lignes dans MySQL ?

Comment PreparedStatement peut-il améliorer les insertions multi-lignes dans MySQL ?

DDD
Libérer: 2024-12-19 21:09:12
original
1007 Les gens l'ont consulté

How Can PreparedStatement Improve Multi-Row Inserts in MySQL?

Optimisation des insertions multi-lignes avec PreparedStatement

Au départ, l'insertion de lignes dans une table MySQL à l'aide d'une boucle et d'appels PreparedStatment individuels était une pratique courante . Cependant, pour améliorer les performances, il est souhaitable d'utiliser la syntaxe prise en charge par MySQL pour les insertions multi-lignes.

Batching avec PreparedStatement

Un PreparedStatement offre une solution pour des insertions multi-lignes optimisées. insertions de lignes par lots. En utilisant la méthode PreparedStatement#addBatch(), plusieurs instructions SQL sont accumulées dans un lot. Ces instructions sont ensuite exécutées simultanément via PreparedStatement#executeBatch().

L'exemple de code suivant illustre cette approche :

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.
            }
        }
    }
}
Copier après la connexion

Ressources supplémentaires

Pour plus de détails sur cette technique, reportez-vous aux ressources suivantes :

  • Tutoriel JDBC - Utilisation PreparedStatement
  • Tutoriel JDBC - Utilisation d'objets de déclaration pour les mises à jour par lots

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal