1

我读过左侧的 MySQL 索引,所以如果我跨两列创建索引field1field2我可以这样做:

 SELECT .. FROM .. WHERE `field1` = 'x' AND `field2` = 'y';

 SELECT .. FROM .. WHERE `field1` = 'x';

两者都可以吗?我问是因为有时它会按两列查询,有时只按第一列查询。或者对于这两种情况有两个不同的指数会更好吗?

4

2 回答 2

1

西蒙坦普尔,你是对的。两个查询都是对的。只要你不跑步:

 SELECT .. FROM .. WHERE `field2` = 'y' AND `field1` = 'x';

或者

 SELECT .. FROM .. WHERE `field2` = 'y';

保持组合索引应该不是问题。

于 2013-04-30T04:35:27.093 回答
0

是的,双列索引可以使两个查询受益。无需创建两个索引。

事实上,工具pt-duplicate-key-checker会将单列索引报告为冗余。

于 2013-04-30T04:45:06.327 回答