Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour efficacement une table MySQL en fonction des valeurs correspondantes dans une autre table ?

Comment puis-je mettre à jour efficacement une table MySQL en fonction des valeurs correspondantes dans une autre table ?

Linda Hamilton
Libérer: 2025-01-05 12:14:38
original
846 Les gens l'ont consulté

How Can I Efficiently Update a MySQL Table Based on Matching Values in Another Table?

Mise à jour d'une table MySQL à partir d'une autre en fonction de la valeur

Vous souhaitez mettre à jour sans effort une table MySQL, « à mettre à jour », avec les valeurs d'une autre table , 'original', basé sur les chaînes correspondantes stockées dans un champ VARCHAR(32), 'value.'

Requêtes initiales et problèmes de performances

Au départ, vous avez essayé la requête suivante pour mettre à jour 'tobeupdated' :

UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
Copier après la connexion

Pendant que réussie, cette requête s'est avérée lente et n'a traité qu'une petite fraction du message souhaité. mises à jour.

Requête optimisée

Pour améliorer les performances, considérez la requête optimisée suivante :

UPDATE tobeupdated
INNER JOIN original ON (tobeupdated.value = original.value)
SET tobeupdated.id = original.id
Copier après la connexion

Comprendre la requête optimisée

La syntaxe 'INNER JOIN' permet une récupération de données plus efficace en spécifiant explicitement la jointure état entre les deux tableaux. De plus, l'indexation des champs « tobeupdated.value » et « original.value » accélère considérablement le traitement.

Requête simplifiée

Pour une solution encore plus simple, vous pouvez utiliser l'outil Clause 'USING' :

UPDATE tobeupdated
INNER JOIN original USING (value)
SET tobeupdated.id = original.id
Copier après la connexion

'USING' simplifie une équi-jointure en faisant automatiquement correspondre les colonnes avec les même nom dans les deux tables. Dans ce cas, « à mettre à jour » et « original » ont tous deux une colonne « valeur ».

Considérations supplémentaires

Assurez-vous d'une couverture d'index adéquate sur les colonnes pertinentes pour optimiser les performances. Si les tableaux sont exceptionnellement volumineux, envisagez de créer un troisième tableau pour les résultats fusionnés, même si cela n'améliore pas nécessairement la vitesse.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal