2013-02-13 105 views
7

我在MySQL的一個表,其中的「ID」列是主鍵:如果ID列是主鍵,是否需要在mySQL表上添加索引?

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; 

我還添加了一個指標如下:

CREATE INDEX id_index ON USERS (id); 

難道我需要這樣做?或者是主鍵自動編入索引?

最終目標是加快在表USERS的id列上加入的查詢。

謝謝

+0

[主鍵和外鍵索引]可能重複(http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys)。我做了一些測試。 – 2013-02-13 10:39:00

回答

8

不,你不需要這麼做。

主鍵自動編入索引。你需要的是在其他表中索引外鍵的列。

+1

MySQL將自動創建索引[即使是外鍵](http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys)。 – 2013-02-13 10:38:40

2

默認情況下,主鍵像INDEX KEY一樣工作。 你不需要創建這個索引鍵。

相關問題