Maison > base de données > tutoriel mysql > L'utilisation de plusieurs instructions SELECT est-elle efficace pour l'insertion de tables complexes ?

L'utilisation de plusieurs instructions SELECT est-elle efficace pour l'insertion de tables complexes ?

Barbara Streisand
Libérer: 2024-12-09 05:44:10
original
951 Les gens l'ont consulté

Is Using Multiple SELECT Statements Efficient for Upserting with Complex Tables?

Upsert avec des tables complexes : mise à jour de plusieurs colonnes

Lors de l'exécution d'opérations d'upsert avec plusieurs colonnes, la question se pose de savoir s'il est efficace d'utiliser plusieurs sélectionnez les instructions dans la partie mise à jour. Bien que cela soit techniquement réalisable, une meilleure approche est disponible.

Considérez l'exemple fourni :

INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES('A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A')
Copier après la connexion

Cette requête ajoute effectivement la quantité entrante à la valeur existante pour l'article spécifié. Cependant, la sous-sélection n'est pas nécessaire.

La version corrigée de la requête est la suivante :

INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = `new_items_count` + 27
Copier après la connexion

En omettant la sous-sélection, la requête utilise la capacité de MySQL à référencer la ligne qui a déclenché l'activation. Action CLÉ EN DUPLICATION. Cela élimine le besoin d'instructions de sélection supplémentaires et rationalise le processus de mise à jour.

N'oubliez pas que la simplicité est souvent la clé d'opérations efficaces. En examinant attentivement les options disponibles et en évitant toute complexité inutile, vous pouvez optimiser vos requêtes d'insertion en termes de performances et de lisibilité du code.

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