2013-02-13 4 views
7

Ich habe eine Tabelle in mySQL, wo die ‚id‘ Spalte der Primärschlüssel ist:Muss ich einen Index für eine mySQL-Tabelle hinzufügen, wenn die ID-Spalte der Primärschlüssel ist?

CREATE TABLE `USERS` (
    `ID` mediumint(9) NOT NULL auto_increment, 
    ..... 
    PRIMARY KEY (`ID`), 
    KEY `id_index` (`ID`) 
) ENGINE=MyISAM AUTO_INCREMENT=267 DEFAULT CHARSET=latin1; 

Außerdem habe ich einen Index wie folgt:

CREATE INDEX id_index ON USERS (id); 

Brauchte ich dies zu tun? Oder wird der Primärschlüssel automatisch indexiert?

Das Endziel ist hier, um Abfragen zu beschleunigen, die auf der ID-Spalte der Tabelle BENUTZER beitreten.

Dank

+0

Mögliches Duplikat von [Indizes auf Primär- und Fremdschlüsseln] (http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys). Ich habe ein paar Tests gemacht. –

Antwort

8

Nein, brauchen Sie nicht zu tun.

Primärschlüssel wird automatisch indiziert. Was Sie brauchen, ist eine Spalte zu indizieren, die ein Fremdschlüssel in einer anderen Tabelle ist.

+1

MySQL erstellt automatisch Indizes [auch für Fremdschlüssel] (http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys). –

2

Standardmäßig funktioniert der Primärschlüssel wie INDEX KEY. müssen Sie dies nicht zum Indexschlüssel erstellen.