如何解决MySQL性能:查询索引列是否具有给定值
| 给定表create table t (
t_id int not null primary key,c int not null,...
key (c)
)
我想查询t
中的任何行是否有c
等于X。我只需要是/否答案。
由于列ѭ2column已被索引,因此MysqL应该能够在索引中查找并在找到一个值X时立即停止。哪些查询将从MysqL中获得最佳性能?
你有比我更好的主意吗?
select 1 from t where c=X limit 1
要么
select count(*)>0 from t where c=X
我更喜欢前者。后者似乎需要优化器提供更多的技巧。
解决方法
您的极限1方法很好,可以使用存在的方法:
select exists (select 1 from t where c = x)
绝对不要数。这样做将使其在应用> 0条件之前实际计算所有匹配的行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。