Mysql Mise À Jour En Bloc
Je dois exécuter ~6k requêtes de mise à jour sur une table à l'aide de sql (Pas de Hibernate/JDBC). La requête est quelque chose comme
mise à jour d'Un ensemble some_id='valeur1' where id='valeur2'
Il prend trop de temps pour l'exécution de tous ces requêtes. Est-il un moyen pour améliorer les performances?
OriginalL'auteur java_geek | 2013-05-23
Vous devez vous connecter pour publier un commentaire.
Créer une table temporaire (contenant seulement la valeur1 et valeur2 valeurs) et de le remplir en vrac (c'est à dire, vous pouvez potentiellement faire avec une seule instruction insert). Puis faire une mise à jour à l'aide d'une jointure entre votre table existante et la table temp.
Quelque chose comme
Un peu plus rapide en raison de besoin de beaucoup moins d'états d'envoi à la base de données. Si la mise à jour est basée sur un fichier CSV puis, potentiellement, l'insertion a pu être effectuée à l'aide de LOAD DATA INFILE.... la syntaxe. Si la mise à jour est basée sur une clé unique, potentiellement de tout ce qui pourrait être fait dans l'instruction INSERT à l'aide SUR le DOUBLE de la CLÉ de mise à JOUR ... de la syntaxe.
OriginalL'auteur Kickstart