分析PostgreSQL中的distinct和group by
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇内容介绍了"分析PostgreSQL中的distinct和group by"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家
千家信息网最后更新 2025年01月25日分析PostgreSQL中的distinct和group by
本篇内容介绍了"分析PostgreSQL中的distinct和group by"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
通常来说,获取唯一值,既可以用distinct也可以用group by,但在存在主键时,group by会做相应的优化,把多个分组键规约为主键.
没有主键的情况
[pg12@localhost ~]$ psqlExpanded display is used automatically.psql (12.2)Type "help" for help.[local:/data/run/pg12]:5120 pg12@testdb=# create table tbl1 (id int,c1 text,c2 int,c3 varchar);CREATE TABLE[local:/data/run/pg12]:5120 pg12@testdb=# insert into tbl1 (id,c1,c2,c3) select x,x||'c1',x,x||'c3' from generate_series(1,100000) as x;INSERT 0 100000[local:/data/run/pg12]:5120 pg12@testdb=# explain select distinct id,c1,c2,c3 from tbl1; QUERY PLAN ------------------------------------------------------------------ HashAggregate (cost=1668.94..1720.54 rows=5160 width=72) Group Key: id, c1, c2, c3 -> Seq Scan on tbl1 (cost=0.00..1152.97 rows=51597 width=72)(3 rows)[local:/data/run/pg12]:5120 pg12@testdb=# explain select id,c1,c2,c3 from tbl1 group by id,c1,c2,c3; QUERY PLAN ------------------------------------------------------------------ HashAggregate (cost=1668.94..1720.54 rows=5160 width=72) Group Key: id, c1, c2, c3 -> Seq Scan on tbl1 (cost=0.00..1152.97 rows=51597 width=72)(3 rows)
存在主键的情况
[local:/data/run/pg12]:5120 pg12@testdb=# alter table tbl1 add primary key(id);'ALTER TABLE[local:/data/run/pg12]:5120 pg12@testdb=# explain select distinct id,c1,c2,c3 from tbl1; QUERY PLAN ------------------------------------------------------------------------- Unique (cost=14043.82..15293.82 rows=100000 width=72) -> Sort (cost=14043.82..14293.82 rows=100000 width=72) Sort Key: id, c1, c2, c3 -> Seq Scan on tbl1 (cost=0.00..1637.00 rows=100000 width=72)(4 rows)[local:/data/run/pg12]:5120 pg12@testdb=# explain select id,c1,c2,c3 from tbl1 group by id,c1,c2,c3; QUERY PLAN ------------------------------------------------------------------------------------- Group (cost=0.29..5402.29 rows=100000 width=72) Group Key: id -> Index Scan using tbl1_pkey on tbl1 (cost=0.29..5152.29 rows=100000 width=72)(3 rows)[local:/data/run/pg12]:5120 pg12@testdb=#
在存在主键的情况下,使用group by时,分组键只需要主键即可.
"分析PostgreSQL中的distinct和group by"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
情况
分析
内容
更多
知识
分组
实用
学有所成
接下来
困境
多个
实际
文章
案例
编带
网站
行业
过程
高质量
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界服务器怎么获得32k武器
软件开发怎么当兵
php操作数据库分步完成
网络安全作文年级
网络安全十个一活动
摩托罗拉修改dns服务器
疫情软件开发
数据库调研
英国TRICS数据库
我的世界服务器地狱门怎么造
保密局软件开发
2014年软件开发市场占有率
网络安全手抄报怎么做 一等奖
方舟服务器驯服人马
类似基因工程网络技术
泰安量化积分管理软件开发系统
廊坊网络安全
网吧服务器为什么要用
互联网金融科技环境分析报告
深圳软件开发的公司
深圳软件开发公司新排行榜
贵州服务器散热风扇生产厂家
mpp数据库建表语句
万方数据库功能
测试软件开发报价
合肥二手服务器回收诚信企业推荐
无锡虹蚂蚁网络技术有限公司
服务器都会用的指令
mysql跨服务器
成都市软件开发有哪些公司