Mysql
 sql >> Base de données >  >> RDS >> Mysql

Puis-je avoir une clé primaire sans index clusterisé ? Puis-je également avoir un index clusterisé à plusieurs valeurs ?

(Cette réponse concerne uniquement SQL Server 2005+. Je ne connais rien à MySQL.)

Oui. Comme vous l'avez mentionné, une contrainte de clé primaire est soutenue par un index clusterisé par défaut. Vous pouvez indiquer à SQL Server de sauvegarder la contrainte avec un index non clusterisé en déclarant la contrainte comme suit :

ALTER TABLE MyTable
    ADD CONSTRAINT PK_MyTable
        PRIMARY KEY NONCLUSTERED(Col1);

Oui, vous pouvez définir un index avec plusieurs colonnes dans la clé d'index. Ce n'est vraiment pas différent d'un index non clusterisé.

CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
    ON MyTable(Col1, Col2, Col3);

Références :ALTER TABLE , CREATE INDEX