热线电话:13121318867

登录
2019-02-14 阅读量: 721
SQL语句优化

问题描述:

要判断某一条数据的某一个字段的值,是在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;

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

解决方法:

id是主键的话,这两个写法的效率基本是一样的,具体要看sql语句的执行计划。

从sql语句和业务逻辑的对应关系上,写法2更好一点。

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

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

0.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子