给出表格
create table t (
t_id int not null primary key,
c int not null,
...
key (c)
)
我想查询t
中的c
行是否c
等于X.我只需要一个是/否答案。
由于列select 1 from t where c=X limit 1
被编入索引,MySQL应该能够查找索引并在找到一个值X后立即停止。哪些查询将获得MySQL的最佳性能?
你有比我更好的想法吗?
select count(*)>0 from t where c=X
或
{{1}}
我更喜欢前者。后者似乎需要优化器更加聪明。
答案 0 :(得分:1)
你的限制1方法没问题,就像使用存在一样:
select exists (select 1 from t where c = x)
绝对不要算。这样做会使它在应用>之前实际计算所有匹配的行。 0条件。