Maison > base de données > tutoriel mysql > Comment définir et optimiser une clé primaire composite en SQL ?

Comment définir et optimiser une clé primaire composite en SQL ?

Patricia Arquette
Libérer: 2025-01-10 20:15:42
original
432 Les gens l'ont consulté

How Do I Define and Optimize a Composite Primary Key in SQL?

Clés primaires composites SQL : définition et optimisation

Une clé primaire composite en SQL utilise plusieurs colonnes pour identifier de manière unique chaque ligne d'une table. Cela contraste avec une clé primaire à une seule colonne. Pour en créer un, répertoriez les colonnes clés après le mot-clé PRIMARY KEY.

Exemple illustratif :

Disons que nous construisons une table voting avec les champs QuestionID, MemberID et vote. Nous utiliserons QuestionID et MemberID comme clé primaire composite, garantissant qu'un membre ne peut voter qu'une seule fois par question.

<code class="language-sql">CREATE TABLE voting (
  QuestionID NUMERIC,
  MemberID NUMERIC,
  vote VARCHAR(255),
  PRIMARY KEY (QuestionID, MemberID)
);</code>
Copier après la connexion

La combinaison de QuestionID et MemberID identifie de manière unique chaque enregistrement. Surtout, ni QuestionID ni MemberID ne peuvent contenir des valeurs NULL.

Impact de l'indice sur les performances :

  • Optimisation des requêtes : Une clé primaire composite, intrinsèquement indexée, augmente la vitesse des requêtes lors du filtrage par l'une de ses colonnes constitutives.
  • Importance de l'ordre des clés : L'ordre des colonnes dans la définition de la clé primaire affecte directement la sélection de l'index lors des requêtes. Une réflexion approfondie est nécessaire.

Indexation supplémentaire stratégique :

Vous interrogez fréquemment des colonnes en dehors de la clé primaire ? La création d'index distincts pour ces colonnes est une stratégie d'optimisation des performances.

Par exemple, si MemberID est fréquemment utilisé dans les requêtes sur la table voting, un index supplémentaire pourrait être bénéfique :

<code class="language-sql">CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);</code>
Copier après la connexion

Cela crée un index unique en utilisant MemberID et QuestionID. Notez que l'ordre peut différer de l'ordre des clés primaires pour s'adapter aux modèles de requête. Le choix de l'ordre d'indexation optimal dépend des types de requêtes les plus fréquents.

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