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
1064 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!

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