2013-02-13 47 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一样工作。 你不需要创建这个索引键。

相关问题