校验数据是否重复时,需要查询数据库。
一种方式是:
select count(1) from t where a = "foo" and b = "bar";
另一种方式是:
select exists(select id from t where a = "foo" and b = "bar");
两种方式那种更高效?
在不同数据库、不同索引、不同数据量情况下,可能表现都不一样,应该怎么优化?
校验数据是否重复时,需要查询数据库。
一种方式是:
select count(1) from t where a = "foo" and b = "bar";
另一种方式是:
select exists(select id from t where a = "foo" and b = "bar");
两种方式那种更高效?
在不同数据库、不同索引、不同数据量情况下,可能表现都不一样,应该怎么优化?
EXISTS操作在某些情况下可能比COUNT更高效,比如查询、数据量时;当需要获取满足条件的记录数量时,或者需要精确统计某个列的唯一值时,使用COUNT操作更为合适。但具体要根据实际的查询需求和数据量进行评估和测试。
8 回答2.7k 阅读
2 回答5.2k 阅读✓ 已解决
5 回答1.3k 阅读
4 回答1.5k 阅读✓ 已解决
3 回答2.2k 阅读
8 回答1.3k 阅读
3 回答919 阅读✓ 已解决
有唯一索引就count(1)好,没有索引 exists好点。优化最好看情况建索引