我的表:
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;
每个只使用PRIMARY键。但是,testIndex不是。我的问题是......为什么?既然SELECT在id和anotherID中都引用了值,那么不应该使用testIndex吗?
SQL小提琴:
答案 0 :(得分:6)
主键是唯一的,因此甚至不需要额外检查。它没有比主键更独特。因此,在这种情况下使用其他索引没有额外的好处。
答案 1 :(得分:0)
嗯,MySql显然认为主键足以进行查询。但是,您可以这样做:
EXPLAIN SELECT *
FROM test USE INDEX (textIndex) ...