count去重和distinct去重

简介: count去重和distinct去重

有两种去重方法:
1、select count(distinct id) from a;这个是将所有值都放入到内存中,key为列值,通过hash算出有多少个key就是多少行。
2、select count(1) from (select 1 from a group by id ) a,这个是通过group by先将id进行排序,之后只要进行计数就可以了。时间复杂度为nlogn,空间复杂度为1。空间复杂度小。

两种方法优缺点比较:
如果内存够容纳所有行数,第一种优于第二种
image
当如果内存不够的话,第二种优于第一种。
image

总结数据量小第一种,数据量大第二种。

目录
相关文章
|
4月前
|
JSON JavaScript 前端开发
set 去重
set 去重
45 3
|
30天前
|
JSON JavaScript 前端开发
set去重
set去重
14 4
|
4月前
|
SQL
[已解决]使用order by 排序后的是10 6 7 8 9 而不是 6 7 8 9 10?
[已解决]使用order by 排序后的是10 6 7 8 9 而不是 6 7 8 9 10?
89 0
|
10月前
|
SQL
解决union查询order by 排序失效的问题
解决union查询order by 排序失效的问题
153 0
|
C#
C# distnict去重
C# distnict去重
66 0
|
关系型数据库 MySQL 索引
MySQL中去重 distinct 和 group by 是如何去重的
MySQL中去重 distinct 和 group by 是如何去重的
119 0
|
SQL
ORDER BY:对查询结果进行排序
ORDER BY:对查询结果进行排序
98 0
|
关系型数据库 MySQL 数据库
使用order by对查询结果排序|学习笔记
快速学习使用order by对查询结果排序
163 0
|
关系型数据库 MySQL 数据库
select distinct去掉重复查询结果|学习笔记
快速学习select distinct去掉重复查询结果
239 0
|
算法 搜索推荐 关系型数据库
Orderby 排序优化
在日常的业务开发中,order by 排序是少不了的。但要写出高效的排序SQL,需要先花点精力和时间来了解排序的底层原理,这样才能找到优化排序的好策略。
1289 0
Orderby 排序优化