4

如果 mysql 中子句的值列表IN具有重复值且未排序,是否会影响查询性能。

例如

SELECT * FROM `t1` WHERE `id` IN (2,2,3,1,1);

v/s

SELECT * FROM `t1` WHERE `id` IN (1,2,3);
4

2 回答 2

4

MySQL将摆脱不同的值并在优化阶段对它们进行排序。

这会略微影响性能,但对于大多数实际查询,您不会注意到任何差异(它的数量级为毫秒)。

于 2012-06-08T07:01:30.770 回答
0

当您使用以下查询时,您需要担心这一点:

SELECT * FROM `t1` WHERE `id` IN (SELECT `id` FROM `t2`);

并且返回的行数t2大于 1000!

于 2012-06-08T07:08:15.530 回答