首页 > 其他分享 >posggres 的聚合查询,记录数好奇怪:

posggres 的聚合查询,记录数好奇怪:

时间:2025-01-04 15:45:39浏览次数:1  
标签:count posggres 聚合 -- sbtest2 CommSQLPlus +----------+ 数好 select

我的测试环境如何产生数据的:用sysbench生成和测试过!

sysbench  --db-driver=pgsql --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=test02 --pgsql-password=test02 --pgsql-db=postgres --oltp-table-size=200000 --oltp-tables-count=10 --rand-init=on --threads=10 --time=30 --events=0 --report-interval=10 --percentile=99 /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua prepare
sysbench  --db-driver=pgsql  --pgsql-host=127.0.0.1  --pgsql-port=5432  --pgsql-user=test02  --pgsql-password=test02   --pgsql-db=postgres  --oltp-table-size=10000  --threads=10  --time=12000  --events=0  --report-interval=10  --percentile=99  /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua  run

表的结构和表的数量如下:

CommSQLPlus > select count(*) from sbtest2;
CommSQLPlus >
select count(*) from sbtest2;
+----------+
|count     |
+----------+
|200000    |
+----------+
当前查询记录数量:1

CommSQLPlus > select count(*) from sbtest1;
CommSQLPlus >
select count(*) from sbtest1;
+----------+
|count     |
+----------+
|200000    |
+----------+
当前查询记录数量:1
CommSQLPlus >
表结构如下:
CommSQLPlus > desc sbtest1
CommSQLPlus >
CommSQLPlus >
+----------------+--------------+---------------+-------------+---------------+---------------------------------------+----------------+
|table_schema    |table_name    |column_name    |data_type    |is_nullable    |column_default                         |last_analyze    |
+----------------+--------------+---------------+-------------+---------------+---------------------------------------+----------------+
|public          |sbtest1       |pad            |character    |NO             |''::bpchar                             |                |
|public          |sbtest1       |c              |character    |NO             |''::bpchar                             |                |
|public          |sbtest1       |k              |integer      |NO             |0                                      |                |
|public          |sbtest1       |id             |integer      |NO             |nextval('sbtest1_id_seq'::regclass)    |                |
+----------------+--------------+---------------+-------------+---------------+---------------------------------------+----------------+
CommSQLPlus > desc sbtest2
CommSQLPlus >
CommSQLPlus >

+----------------+--------------+---------------+-------------+---------------+---------------------------------------+----------------+
|table_schema    |table_name    |column_name    |data_type    |is_nullable    |column_default                         |last_analyze    |
+----------------+--------------+---------------+-------------+---------------+---------------------------------------+----------------+
|public          |sbtest2       |pad            |character    |NO             |''::bpchar                             |                |
|public          |sbtest2       |c              |character    |NO             |''::bpchar                             |                |
|public          |sbtest2       |k              |integer      |NO             |0                                      |                |
|public          |sbtest2       |id             |integer      |NO             |nextval('sbtest2_id_seq'::regclass)    |                |
+----------------+--------------+---------------+-------------+---------------+---------------------------------------+----------------+
CommSQLPlus >

 

数据样例如下:

CommSQLPlus > select k from sbtest1 limit 10;
CommSQLPlus >
select k from sbtest1 limit 10;
+----------+
|k         |
+----------+
|99857     |
|100394    |
|100853    |
|100403    |
|99963     |
|100117    |
|100275    |
|99988     |
|105454    |
|100676    |
+----------+
当前查询记录数量:10

CommSQLPlus > select k from sbtest2 limit 10;
CommSQLPlus >
select k from sbtest2 limit 10;
+----------+
|k         |
+----------+
|100979    |
|100581    |
|100424    |
|100752    |
|100996    |
|100595    |
|100167    |
|84655     |
|100245    |
|100263    |
+----------+
当前查询记录数量:10

CommSQLPlus >

分别查询如下

CommSQLPlus > select count(distinct a.k) from sbtest1 a,sbtest2 b where a.k=b.k;
CommSQLPlus >
select count(distinct a.k) from sbtest1 a,sbtest2 b where a.k=b.k;
+---------+
|count    |
+---------+
|18169    |
+---------+
当前查询记录数量:1

CommSQLPlus > select count(distinct b.k) from sbtest1 a,sbtest2 b where a.k=b.k;
CommSQLPlus >
select count(distinct b.k) from sbtest1 a,sbtest2 b where a.k=b.k;
+---------+
|count    |
+---------+
|18169    |
+---------+
当前查询记录数量:1

总数查询:

CommSQLPlus > select count(k) from sbtest1 a ;
CommSQLPlus >
select count(k) from sbtest1 a ;
+----------+
|count     |
+----------+
|200000    |
+----------+
当前查询记录数量:1

CommSQLPlus > select count(k) from sbtest2 a ;
CommSQLPlus >
select count(k) from sbtest2 a ;
+----------+
|count     |
+----------+
|200000    |
+----------+
当前查询记录数量:1

CommSQLPlus >

差异查询:为啥聚合查询总量比每个表还大

CommSQLPlus > select count(b.k) from sbtest1 a,sbtest2 b where a.k=b.k;
CommSQLPlus >
select count(b.k) from sbtest1 a,sbtest2 b where a.k=b.k;
+------------+
|count       |
+------------+
|14976808    |
+------------+
当前查询记录数量:1

CommSQLPlus >

看执行计划:还是比较懵逼的

 差异结果探索中....

标签:count,posggres,聚合,--,sbtest2,CommSQLPlus,+----------+,数好,select
From: https://www.cnblogs.com/commsqlplus/p/18651965

相关文章

  • 不想在多个微信之间来回切换?这个多微聚合管理神器必须拥有!
    你是不是也厌倦了在不同的账号之间来回切换?是不是也觉得携带多台设备出门很是麻烦?是不是也想高效管理这些账号?那这个多微聚合管理神器你必须拥有!1、多好同时在线统一管理它能够支持多个微信号同时在线登录。不管你有十几个、几十上百个,甚至上千个微信号,都能统一管理。不再需......
  • 什么是聚合根和聚合
    实体和值对象组成聚合,再根据业务,将多个聚合划定到同一限界上下文,并在限界上下文内完成领域建模。聚合只是单纯将一些共享父类、密切关联的对象聚集成一个对象树吗?如果是这样,对于存在于这个树中的对象,有没有一个实用的数目限制?既然一个聚合可以引用另一个聚合,是否可以深度遍历下......
  • 电力交易笔记-附件5:负荷集成商,也叫负荷聚合商
    转自https://www.zhihu.com/question/468414700/answer/2248279000 负荷聚合商(loadaggregator,LA)作为新的专业化需求响应资源整合者,最先出现在发达国家,通过专业技术评估用户的需求响应潜力,整合分散的需求响应资源来参与电力系统运营。从系统运行方的角度看,LA被看做是一个大......
  • UML之组合与聚合
    关联和链接关系在很多情况下是对称的,即被关联的两个类都有以自己为源端对方为目标端的角色存在,而且角色与源端类的属性是等价的,即在关联一端的关联端(角色)等价于另外一端的属性。例如,在下图中,我们可以认为author:Person是类Book的一个属性,而myBooks:Person是类Person的一个属性。......
  • 聚合电商API接口平台:让数据成为生产力
    聚合电商API接口平台通过整合多个电商平台的API接口,为商家和开发者提供一站式的数据服务,旨在帮助商家和开发者将数据转化为生产力,从而推动业务的发展。以下是对聚合电商API接口平台的详细解析:一、平台概述聚合电商API接口平台的核心价值在于整合多个电商平台的API接口,实现数......
  • SQL 实战:窗口函数的妙用 – 分析排名与分组聚合
    在复杂的数据分析和查询场景中,SQL窗口函数(WindowFunctions)是提升性能和代码可读性的重要工具。窗口函数可以轻松实现排名、分组聚合、滑动平均等复杂计算,避免使用嵌套子查询或冗余的多次表扫描。本文将通过实战案例,深入剖析窗口函数的应用场景,重点讲解如何进行排名和分组......
  • 德普微一级代理 DPDW01G SOT23-6 1节锂离子/锂聚合物电池保护IC
    主要特点内置高精度电压检测电路   过充电检测电压:4.28V±0.05V;   过充电解除电压:4.08V±0.05V;   过放电检测电压:2.4V±0.05V;   过放电解除电压 :3.0V±0.1V;   放电过电流检测电压:0.15V-0.02/+0.03V;   充电过电流检测电压:-0.15V±0......
  • SNMP监控 (网络设备,但是下面是以centos为例子)、web监控、聚合图形
    一、SNMP监控snmp是针对交换机等硬件设备的,但是我这里没有交换机,是拿centos为例子做实验 在192.168.75.133上安装 yuminstall-ynet-snmpyum-yinstallnet-snmp-utils     #在192.168.75.133上安装抓取信息的工具snmpwalk-v2c-csxmzm 192.168.7......
  • ensp 链路聚合(含实验配置)
    以太网链路聚合技术LinkAggregation,或者称为端口捆绑、链路捆绑技术,是一种通用的以太网技术。通过该技术,我们能够将多条以太网链路进行“捆绑”,捆绑之后的这些物理链路就形成了逻辑上的一条新的链路(Eth-Trunk),这条聚合链路不仅仅在带宽上成倍的增加,还同时提供了负......
  • Linux服务器网卡接口聚合Bond技术及原理
    什么是BondBond技术,也被称为网卡绑定或网卡捆绑,是将两个或更多的物理网卡绑定成一个虚拟的网卡。Bond的工作模式bond的模式有7种,mode=0,mode=1,mode=2,mode=3,mode=4,mode=5,mode=6bond常用的模式有两种1)mode=0,表示平衡负载round-robin,轮询的方式,第一个包走eth0,第二个包走eth......