2013-02-13 23 views
7

Mam tabeli w MySQL, gdzie „id” kolumna jest klucz podstawowy:Czy muszę dodać indeks do tabeli mySQL, jeśli kolumna ID jest kluczem podstawowym?

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; 

Dodałem także indeks następująco:

CREATE INDEX id_index ON USERS (id); 

Czy muszę to robić? A może klucz podstawowy jest automatycznie indeksowany?

Celem końcowym jest tutaj przyśpieszenie zapytań, które łączą się w kolumnie ID użytkowników UŻYTKOWNICY.

Dzięki

+0

Prawdopodobny duplikat [Indeksy kluczy głównych i kluczy obcych] (http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys). Zrobiłem kilka testów na ten temat. –

Odpowiedz

8

Nie, nie musisz tego robić.

Klucz podstawowy jest automatycznie indeksowany. Potrzebujesz tylko indeksować kolumnę, która jest kluczem obcym w innej tabeli.

+1

MySQL utworzy indeksy automatycznie [nawet dla kluczy obcych] (http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys). –

2

Domyślnie klucz główny działa jak KLAWISZ INDEKSU. nie trzeba tworzyć tego klucza indeksu.