exists是否比count更高效?

新手上路,请多包涵

校验数据是否重复时,需要查询数据库。
一种方式是:

select count(1) from t where a = "foo" and b = "bar";

另一种方式是:

select exists(select id from t where a = "foo" and b = "bar");

两种方式那种更高效?
在不同数据库、不同索引、不同数据量情况下,可能表现都不一样,应该怎么优化?

阅读 2.4k
2 个回答

有唯一索引就count(1)好,没有索引 exists好点。优化最好看情况建索引

EXISTS操作在某些情况下可能比COUNT更高效,比如查询、数据量时;当需要获取满足条件的记录数量时,或者需要精确统计某个列的唯一值时,使用COUNT操作更为合适。但具体要根据实际的查询需求和数据量进行评估和测试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题