首页 > 数据库技术 > 详细

SQL去重方案GROUP BY和DISTINCT对比

时间:2019-11-18 19:24:07      阅读:684      评论:0      收藏:0      [点我收藏+]

假设一个需求要根据type+id去重,则SQL分别如下

GROUP BY的SQL

SELECT type,id FROM table GROUP BY  type,id
如果要显示其它字段,可以使用MAX(xxx)

DISTINCT的SQL

SELECT DISTINCT type,id FROM table
如果要显示其它字段,可以使用DISTINCT ON(type,id) xxxx

以上2条SQL效率如何呢?

GROUP BY原理

将type,id进行sort排序,实现去重

DISTINCT原理

将type,id放在内存中,结构类似Map。type,id为map的key,实现去重

对比结果

机器内存足够的话

DISTINCT效率高于GROUP BY
但内存占用也高于GROUP BY

SQL去重方案GROUP BY和DISTINCT对比

原文:https://www.cnblogs.com/JaminXie/p/11884196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!