首页 > 数据库 >PostgreSQL 计数查询效率,物化视图 [重复]

PostgreSQL 计数查询效率,物化视图 [重复]

时间:2023-03-12 23:23:54浏览次数:40  
标签:PostgreSQL 重复 视图 物化 计数 查询

PostgreSQL 计数查询效率,物化视图 [重复]

问题:PostgreSQL 计数查询效率,物化视图 [重复] 可能重复: PostgreSQL 计数查询优化 使用 PostgreSQL 9.2,我们试图弄清楚是否有一种方法可以跟踪查询的结果数量,并以有效的方式返回该数字。这个查询应该每秒执行几次(可能几十到几百甚至几千次)。我们现在的查询看起来像这样,但我们想知道这是否效率低下: -- Get # of rows that do not hav

 Postgredaxiang  · 2022-09-27 16:32:31

问题:PostgreSQL 计数查询效率,物化视图 [重复]

可能重复:

PostgreSQL 计数查询优化

使用 PostgreSQL 9.2,我们试图弄清楚是否有一种方法可以跟踪查询的结果数量,并以有效的方式返回该数字。这个查询应该每秒执行几次(可能几十到几百甚至几千次)。我们现在的查询看起来像这样,但我们想知道这是否效率低下:

-- Get # of rows that do not have ‘parameter value’ in array_column
select count(*) 
    from table
    where not (ARRAY[‘parameter value’] <@ table.array_column)

我的问题是(一个答案可能同时解决多个问题):

该查询的count(id)(或count(*))是线性(O(n))查询吗?

有什么方法可以让这个查询在 PostgreSQL 中更有效吗?请记住,我们需要查询不同的参数值,因此我认为为其保留物化视图是不可行的(尽管如果认为这样更好,我们可能会考虑为每个参数值创建一个)。

我应该对查询、数据库结构或我的 PostgreSQL 服务器的配置进行任何更改以帮助我提高查询性能吗?

任何指针或建议将不胜感激。如果这是完全错误的方法,请告诉我。

编辑

考虑到答案,我想知道使用物化视图是否合理。我的意思是有几个物化视图(每个视图都有一个不同的参数值,具有不存在该值的行)。我们的参数值在一定程度上是可预测的,因此作为解决方案似乎并不太远。这带来了另一个问题:物化视图在这里会有所帮助吗?我可以在数据库中创建的物化视图(或表)的数量是否存在一些限制(定义或性能)?

解答

想到的第一个想法是缓存值。

您应该评估此值的变化率,并根据此决定是否要在更新此表时执行触发器以计算新值并将其缓存在某处。

对该值的查询结果将是一个没有任何 WHERE 子句的简单 SELECT,因此速度非常快。

或者您可以简单地进行更改,并在之前和之后获取一些统计数据,以了解您是否提高了速度。

更多解释见那里。

标签:PostgreSQL,重复,视图,物化,计数,查询
From: https://www.cnblogs.com/yaoyangding/p/17209562.html

相关文章

  • element-plus的tabs切换位置视图不更新
    1、问题:在element-plus的tabs栏里切换位置,但是数据更新后视图不更新,删除和新增是可以更新的如下例子<scriptsetup>lettabs=reactive(['first','second','third'......
  • PostgreSQL和Oracle的数据类型的对比:大数据类型
    PostgreSQL和Oracle的数据类型的对比:大数据类型 木马童年2018-12-2923:1021220 PostgreSQL是世界上功能最强大的开源数据库,在国内得到了越来越多机构和开发者的青......
  • 为什么说PostgreSQL是最先进的关系型数据库
    公众号:MCNU云原生,文章首发地,欢迎微信搜索关注,更多干货,第一时间掌握!@目录一、PostgreSQL是什么?二、PostgreSQL的功能和特点三、PostgreSQL对比MySQL有哪些优势?四、PostgreS......
  • 四位计数器testbench的设计
    简单介绍一下四位计数器所要满足的条件: 1.4bit循环计数;      1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,1,.......2.能同步清零;        高电平有效3.有加载功能......
  • GenericAPIView的9个视图子类
    1.基于GenericAPIView下的9个视图子类功能关系梳理fromrest_framework.genericsimportCreateAPIView,ListAPIView,UpdateAPIView,RetrieveAPIView,DestroyAPIView,......
  • GridView(网格视图)的基本使用
    本节给大家介绍的是第二个Adapter类的控件——GridView(网格视图),见名知义,ListView是列表,GridView就是显示网格!他和ListView一样是AbsListView的子类!很多东西和ListView都......
  • postgresql 递归查询,查询父子节点关联关系
    postgresql递归查询,查询父子节点关联关系CREATETABLE"public"."sys_department"("id"int4NOTNULLDEFAULTnextval('sys_department_id_seq'::regclass),"na......
  • 使用PostgreSQL而不是MySQL存储中型数据有什么好处?
    我可以明确地回答.我们之所以选择Postgres,是因为它在操作上比MySQL更可靠,而当时公司的创始人相信SQL数据库的可移植性.随着年份的发展,我们发现了这一点,我们发现基本上,Post......
  • PostgreSQL初始化数据
    1.建表插入数据#创建COMPANY表,数据内容如下:DROPTABLECOMPANY;CREATETABLECOMPANY(IDINTPRIMARYKEYNOTNULL,NAMETEXTNOTNULL,AGEINTNOTNULL,ADDRESSCHAR(50......
  • postgresql 查询当前schema下所有表数据的数量
    查询当前数据库下所有表的数据量,后来改成了通过sql拼接sql语句来查询。SELECTconcat('select''',tablename,'''astable_name,count(1)assumfrom',tablename,'un......