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

Comment puis-je mettre à jour efficacement plusieurs lignes dans MySQL ?

DDD
Libérer: 2025-01-21 20:16:14
original
268 Les gens l'ont consulté

How Can I Efficiently Update Multiple Rows in MySQL?

Optimisation des mises à jour MySQL multi-lignes

Bien que les mises à jour MySQL sur une seule ligne soient simples, la mise à jour efficace de plusieurs lignes nécessite une approche différente. Les mises à jour par lots offrent des améliorations substantielles des performances par rapport aux instructions UPDATE individuelles, minimisant ainsi les interactions avec la base de données.

Tirer parti INSERT ... ON DUPLICATE KEY UPDATE

La construction

MySQL INSERT ... ON DUPLICATE KEY UPDATE est idéale pour cette tâche. Cette instruction unique gère à la fois l'insertion et la mise à jour, selon qu'une clé correspondante existe déjà.

Exemple pratique de mise à jour multi-lignes

Illustrons avec un exemple de tableau :

<code>Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8</code>
Copier après la connexion

La requête suivante met à jour efficacement plusieurs lignes :

<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>
Copier après la connexion

Fonctionnalité de cette requête :

  • Tentatives d'insertion de lignes avec les ID 1, 2, 3 et 4.
  • Si une ligne avec un ID donné existe déjà, elle met à jour les valeurs Col1 et Col2 de cette ligne avec les valeurs correspondantes fournies dans la clause VALUES.
  • Si une ligne avec un identifiant donné n'existe pas, elle insère une nouvelle ligne avec les données spécifiées.

Cette approche consolidée améliore considérablement les performances en réduisant le nombre d'allers-retours entre les serveurs de base de données, ce qui accélère les opérations de mise à jour.

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