Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour efficacement plusieurs lignes MySQL simultanément ?

Comment puis-je mettre à jour efficacement plusieurs lignes MySQL simultanément ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 20:03:13547parcourir

How Can I Efficiently Update Multiple MySQL Rows Concurrently?

Mises à jour simultanées des lignes MySQL : meilleures pratiques

L'optimisation des performances de la base de données implique souvent des techniques efficaces pour mettre à jour plusieurs lignes. Cet article décrit les stratégies permettant de réaliser des mises à jour simultanées dans MySQL.

Exploiter INSERT ... ON DUPLICATE KEY UPDATE pour les opérations par lots

L'instruction INSERT ... ON DUPLICATE KEY UPDATE de MySQL offre une méthode puissante pour insérer de nouvelles lignes ou mettre à jour celles existantes en fonction des valeurs fournies. Ceci est particulièrement avantageux pour effectuer plusieurs mises à jour simultanément.

Exemple illustratif :

Considérez cette structure de tableau :

Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8

Pour consolider plusieurs mises à jour en une seule requête, utilisez ce qui suit :

<code class="language-sql">INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);</code>

Cette requête effectue les actions suivantes :

  • Insère des lignes avec les ID 1, 2 et 3 si elles n'existent pas.
  • Mises à jour Col1 à 10 et Col2 à 12 pour la ligne avec l'ID 4.

La clause ON DUPLICATE KEY UPDATE évite les entrées en double, garantissant ainsi que les mises à jour sont appliquées correctement. Cette approche améliore considérablement l'efficacité par rapport aux UPDATE déclarations individuelles.

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:
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