MySQL性能:查询索引列是否具有给定值

时间:2011-06-11 13:11:21

标签: mysql performance

给出表格

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}}

我更喜欢前者。后者似乎需要优化器更加聪明。

1 个答案:

答案 0 :(得分:1)

你的限制1方法没问题,就像使用存在一样:

select exists (select 1 from t where c = x)

绝对不要算。这样做会使它在应用>之前实际计算所有匹配的行。 0条件。