我的桌子:

CREATE TABLE test (
  id INT AUTO_INCREMENT,
  anotherID INT,
  PRIMARY KEY (id),
  INDEX testIndex (id, anotherID)
);
INSERT INTO test VALUES (1,1),(2,1),(3,1),(4,1);

我的问题:
EXPLAIN SELECT *
FROM test
WHERE id = 1
  AND anotherID = 1;

因此,只使用主键。然而,testIndex不是。我的问题是。。。为什么?因为SELECT同时引用id和anotherID中的值,所以不应该使用testIndex吗?
SQL小提琴:
http://sqlfiddle.com/#!2/b833d9/1

最佳答案

主键是唯一的,所以甚至不需要额外的检查。它不会比主键更唯一。因此在这种情况下,使用另一个索引没有额外的好处。

09-20 04:11