Maison > base de données > tutoriel mysql > Comment les clés composites peuvent-elles améliorer les performances de « UPDATE ON DUPLICATE KEY » de MySQL ?

Comment les clés composites peuvent-elles améliorer les performances de « UPDATE ON DUPLICATE KEY » de MySQL ?

Susan Sarandon
Libérer: 2024-12-03 10:21:13
original
324 Les gens l'ont consulté

How Can Composite Keys Improve MySQL's `UPDATE ON DUPLICATE KEY` Performance?

Clés composites pour des requêtes MySQL efficaces de « MISE À JOUR SUR LA CLÉ EN DUPLICATE »

Lorsque vous travaillez avec des identifiants uniques multi-colonnes dans MySQL, le défi se pose de gérer efficacement à la fois les mises à jour et insertions. Bien que la syntaxe 'UPDATE ON DUPLICATE KEY' semble être une solution appropriée, elle nécessite une clé unique pour fonctionner.

Cependant, vous pouvez créer une clé composite à partir de plusieurs colonnes, ce qui permettra 'UPDATE ON DUPLICATE KEY'. pour fonctionner comme souhaité. Voici comment procéder :

Création d'une clé composite

Pour créer une clé composite, utilisez la syntaxe suivante :

CREATE INDEX <index_name> ON <table_name> (<column1>, <column2>);
Copier après la connexion

Par exemple, créons une clé composite pour le tableau à trois colonnes mentionné dans la question :

CREATE INDEX unique_index ON my_table (col_1, col_2);
Copier après la connexion

Utilisation de 'UPDATE ON DUPLICATE KEY'

Une fois la clé composite créée, vous pouvez exécuter des requêtes 'UPDATE ON DUPLICATE KEY' pour mettre à jour ou insérer des enregistrements en fonction des valeurs de la clé. La syntaxe est la suivante :

INSERT INTO <table_name> (col_1, col_2, col_3) VALUES ('value1', 'value2', 'value3') ON DUPLICATE KEY UPDATE col_3=col_3+1;
Copier après la connexion

Dans cette requête, si un enregistrement avec les valeurs spécifiées de col_1 et col_2 existe déjà, col_3 sera incrémenté de 1. Sinon, un nouvel enregistrement sera inséré.

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