我已经读过左边的MySQL索引,所以如果我在两列field1
,field2
之间创建索引,我可以这样做:
SELECT .. FROM .. WHERE `field1` = 'x' AND `field2` = 'y';
和
SELECT .. FROM .. WHERE `field1` = 'x';
两者都没问题?我问,因为有时它会被两个列查询,有时只是第一个查询。或者两个场景有两个不同的指数会更好吗?
答案 0 :(得分:1)
Simontemplar,你是对的。两个查询都是正确的。只要你没有跑步:
SELECT .. FROM .. WHERE `field2` = 'y' AND `field1` = 'x';
或
SELECT .. FROM .. WHERE `field2` = 'y';
保持组合索引应该不是问题。
答案 1 :(得分:0)
是的,双列索引可以使两个查询都受益。无需创建两个索引。
实际上,工具pt-duplicate-key-checker会将单列索引报告为冗余。