2013-02-13 27 views
7

Tôi có một bảng trong mySQL nơi cột 'id' là PRIMARY KEY:Tôi có cần thêm chỉ mục trên bảng mySQL nếu cột ID là khóa chính không?

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; 

Tôi cũng đã thêm một chỉ số như sau:

CREATE INDEX id_index ON USERS (id); 

Ý của tôi cần phải làm điều này? Hoặc là khóa chính tự động được lập chỉ mục?

Mục đích cuối cùng ở đây là tăng tốc truy vấn tham gia vào cột id của USERS bảng.

Cảm ơn

+0

Bản sao có thể có của [Chỉ mục trên khóa chính và khóa ngoài] (http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys). Tôi đã làm một số xét nghiệm về điều đó. –

Trả lời

8

Không, bạn không cần phải làm điều này.

Khóa chính được lập chỉ mục tự động. Những gì bạn cần là chỉ mục cột là khóa ngoài trong bảng khác.

+1

MySQL sẽ tạo chỉ mục tự động [ngay cả đối với khóa ngoài] (http://stackoverflow.com/questions/3529161/indexes-on-primary-and-foreign-keys). –

2

Theo mặc định, khóa chính đang hoạt động giống như phím INDEX. bạn không cần phải tạo khóa này vào khóa chỉ mục.