Dans les applications Java gourmandes en bases de données, l'optimisation des opérations de base de données est essentielle pour les performances. Les opérations INSERT par lots améliorent l’efficacité en combinant plusieurs opérations d’insertion en une seule opération.
Une question courante concerne l'efficacité des INSERT par lots : plusieurs instructions INSERT doivent-elles être combinées en une seule instruction contenant plusieurs ensembles de valeurs ?
La syntaxe pour fusionner plusieurs instructions INSERT en une seule instruction est la suivante :
<code>INSERT INTO some_table (col1, col2) VALUES (val1, val2), (val3, val4), (val5, val6);</code>
Cette approche peut réduire la surcharge du réseau en réduisant le nombre d'allers-retours vers la base de données. Toutefois, certaines bases de données, notamment Oracle, peuvent ne pas gérer ces instructions aussi efficacement que les instructions INSERT individuelles.
Pour des opérations INSERT par lots efficaces, l'approche recommandée consiste à utiliser un PreparedStatement activé par lots. Cela vous permet de préparer et d'effectuer plusieurs opérations d'insertion dans une seule connexion à la base de données :
<code>PreparedStatement ps = c.prepareStatement("INSERT INTO some_table (col1, col2) VALUES (?, ?)"); ps.setString(1, "John"); ps.setString(2,"Doe"); ps.addBatch(); ps.clearParameters(); ps.setString(1, "Dave"); ps.setString(2,"Smith"); ps.addBatch(); ps.clearParameters(); int[] results = ps.executeBatch();</code>
Cette approche bénéficie à la fois du traitement par lots et de la liaison de paramètres, offrant des performances optimales et une utilisation efficace des ressources. La méthode clearParameters()
garantit que vous pouvez exécuter plusieurs lots avec différentes valeurs de paramètres dans le même PreparedStatement.
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!