Mise à jour plus rapide de la table MySQL à l'aide des valeurs d'un autre
La mise à jour d'une table MySQL basée sur les valeurs d'un autre peut être une tâche fastidieuse, surtout lors de la mise en correspondance de grands ensembles de données par valeurs. Pour relever ce défi, explorons une approche plus efficace.
La requête d'origine, bien que fonctionnelle, est lente en raison des multiples conditions "WHERE". Une approche plus préférable et potentiellement plus rapide consiste à utiliser la syntaxe « JOIN » pour joindre des tables. La requête suivante exploite un "INNER JOIN" pour faire correspondre les lignes basées sur la colonne "value" :
UPDATE tobeupdated INNER JOIN original ON (tobeupdated.value = original.value) SET tobeupdated.id = original.id
De plus, les index sur les colonnes "value" des deux tables (à mettre à jour et originales) sont cruciaux pour accélérer des requêtes. Les index aident MySQL à localiser rapidement les lignes en fonction de valeurs spécifiques.
De plus, nous pouvons simplifier davantage la requête en utilisant la clause "USING", qui est un raccourci pour les équi-jointures (jointures basées sur des clés nommées identiques). Dans ce cas, les deux tables ont la colonne "id" comme identifiant unique, nous pouvons donc réécrire la requête comme :
UPDATE tobeupdated INNER JOIN original USING (value) SET tobeupdated.id = original.id
Cette version mise à jour de la requête devrait améliorer considérablement les performances de l'opération de mise à jour. Il exploite des jointures efficaces et tire parti des index pour minimiser le temps requis pour faire correspondre et mettre à jour les lignes. En suivant ces optimisations, vous pouvez obtenir des mises à jour plus rapides de votre table MySQL tout en préservant l'intégrité des données.
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!