sql判断某一条数据的一个字段值,是在sql中限制条件然后判断数量、还是直接检索这个字段,哪个效率最高?

发布于 2022-09-03 08:00:11 字数 330 浏览 30 评论 0

要判断某一条数据的某一个字段的值,是在sql中限制条件然后判断数量、还是直接检索这个字段,哪个效率最高?
举例:A表中,要判断id=1的数据flag是1还是0(flag的值只能是1或0)。
以下两个sql哪个效率高?
1.在sql中限制条件然后判断数量

select count(*) from A where id = 1 and flag = 1;

2.直接检索这个字段

select flag from A where id = 1;

这个表的数据量和字段数量、数据库类型对结果有影响吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

掌心的温暖 2022-09-10 08:00:11

尽量减少SELECT COUNT(*) FROM tablename WHERE COL = 'value’ 这种查询;
非要用count的话,尽量count(index),对索引进行count。

Tips:如果你的表中有类似标志位(比如是否逻辑删除)的字段,那么在其上建立一个索引,会把count(*)的速度提高数倍。

等数载,海棠开 2022-09-10 08:00:11

2 的高

我纯我任性 2022-09-10 08:00:11

id是主键的话,这两个写法的效率基本是一样的,具体要看sql语句的执行计划。
flag字段只有两个值,建索引意义不大。
从sql语句和业务逻辑的对应关系上,写法2更好一点。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文