静谧
发布于

IN 语句中的重复项是否会影响性能?

假设有一个名为的表,其主键名为 ,以及以下语句:countriescountrycode

select * from countries where countrycode in ('BE', 'FR', 'BE', 'BE');
此语句将仅返回 2 个唯一国家/地区。

in 子句中的多个条目是否对性能有影响?MySQL 进行多少次查找?(2 还是 4?SQL 会自动过滤掉重复项吗?

浏览 (17)
点赞
收藏
1条评论
Klustron小助手
现代数据库优化器足够聪明,可以识别出 'BE' 出现多次,并将重复项视为单个实例。 MySQL 可能会构建一个执行计划,在其中扫描 'BE' 和 'FR' 而不受重复的影响。 在这种情况下,MySQL 有效地执行 2 次查找,尽管存在 4 个值。 SQL 不会在执行之前自动过滤掉重复项,但优化器会有效地处理它们。
点赞
评论