SQL distinct 优化

2022年5月4日 22点热度 0人点赞

     在大数据查询的时候,或者查询字段比较多的时候,应该尽量少用distinct , 特别是在最外层不要试使用。因为distinct 会对查询的结果进行排序,致使查询比较慢。这时候应该选用group by的方式,通过对指定字段进行分组,然后在进行count()统计就可以了。

例如:

    我要统计统计期末的数据:数据大概有几百万的数据。

    sql :

        select count(distinct lc.grpcontno) from lcpol lc 

        where lc.grpcontno in( **********);

        这个语句我查询数据将近一天,都没有查询出结果。

        这时候选用

        select count(1) from ( select lc.grpcontno from lcpol lc         where lc.grpcontno in( **********) group by lc.grpcontno)

        查询时间不到30秒就出来结果了。

当然适当的时候选用distinct 也会起到优化的效果。这个要根据自己的实际需求来判断。

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论