当前位置: 首页 > news >正文

网站功能说明怎么做百度排名竞价

网站功能说明怎么做,百度排名竞价,岳池网站建设,一些房产网站是怎么做的PostgreSQL17优化器改进(4)允许UNION(没有ALL)使用MergeAppend UNION存在的问题 到PostgreSQL16.3版本为止,UNION执行计划通常不是最优的,优化器有两种处理方法: 优化器只考虑使用Append节点并通过使用Hash Aggregate,Append -…

PostgreSQL17优化器改进(4)允许UNION(没有ALL)使用MergeAppend

UNION存在的问题

到PostgreSQL16.3版本为止,UNION执行计划通常不是最优的,优化器有两种处理方法:

  1. 优化器只考虑使用Append节点并通过使用Hash Aggregate,Append -> Hash Aggregate
  2. 对整个Append结果排序并通过unique操作符运行使结果唯一,Append -> Sort -> Unique

目前这两种方法总是需要从union子查询中读取所有行

解决方案

在PostgreSQL17版本中,官网通过调整union优化器,使它可以请求每个子查询并以目标列表顺序产生结果,以便将这些结果通过Merge Appended合并在一起,并使用Unique节点使其唯一。因为union子节点可以使用类似于b树索引 and/or Merge Joins为top-level UNION提供预先排序的输入,所以性能有了显著提高。如果top-level UNION包含一个LIMIT节点,该节点将输出行限制为结合行的一个小子集,因为可以使用廉价的启动计划,那么这一点特别好。

执行计划对比

创建测试表

set min_parallel_table_scan_size = '1kB';
set min_parallel_index_scan_size = '1kB';
set parallel_setup_cost = 0;
set parallel_tuple_cost = 0;
set max_parallel_workers_per_gather = 2;
create table t (a int, b int, c int);
insert into t select mod(i,10),mod(i,10),i from generate_series(1,10000) s(i);
create index on t (a);
analyze t;

PostgreSQL16.3的执行计划

优化器只考虑使用Append节点并通过使用Hash Aggregate

由于数据库的参数enable_hashagg默认值是on,含义是允许或禁用查询规划器使用哈希聚集计划类型,因此正常情况下生成的是下面的执行计划。

testdb=# explain (costs off) select count(*) from( select a from t union select c from t ) ss;QUERY PLAN              
-------------------------------------Aggregate->  HashAggregateGroup Key: t.a->  Append->  Seq Scan on t->  Seq Scan on t t_1
(6 rows)
对整个Append结果排序并通过unique操作符运行使结果唯一

如果要生成该执行计划,需要修该enable_hashagg为off

postgres=# set enable_hashagg to off;
SET
postgres=# explain (costs off) select count(*) from( select a from t union select c from t ) ss;QUERY PLAN                 
-------------------------------------------Aggregate->  Unique->  SortSort Key: t.a->  Append->  Seq Scan on t->  Seq Scan on t t_1

PostgreSQL17的执行计划

优化器只考虑使用Append节点并通过使用Hash Aggregate

由于数据库的参数enable_hashagg默认值是on,含义是允许或禁用查询规划器使用哈希聚集计划类型,因此正常情况下生成的是下面的执行计划

testdb=# explain (costs off) select count(*) from( select a from t union select c from t ) ss;QUERY PLAN                     
----------------------------------------------------Aggregate->  HashAggregateGroup Key: t.a->  GatherWorkers Planned: 2->  Parallel Append->  Parallel Seq Scan on t->  Parallel Seq Scan on t t_1
(8 rows)

当前执行计划的执行路径,和PostgreSQL16.3执行计划路径,相差不大,优化器还是使用Append节点并通过使用Hash Aggregate,Append -> Hash Aggregate

对整个Append结果排序并通过unique操作符运行使结果唯一

如果要生成该执行计划,需要修该enable_hashagg为off

testdb=# set enable_hashagg to off;
SET
testdb=# explain (costs off) select count(*) from( select a from t union select c from t ) ss;QUERY PLAN                        
----------------------------------------------------------Aggregate->  Unique->  Merge AppendSort Key: t.a->  Index Only Scan using t_a_idx on t->  Gather MergeWorkers Planned: 2->  SortSort Key: t_1.c->  Parallel Seq Scan on t t_1
(10 rows)

总结

根据官网发布新优化器的描述和对PostgreSQL16.3和PostgreSQL17版本的对比测试,针对官网描述允许UNION(没有ALL)使用MergeAppend,应该具体是对PostgreSQL16.3版本中对于UNION执行计划的其中一个分支,即对整个Append结果排序并通过unique操作符运行使结果唯一(Append -> Sort -> Unique)执行路径进行了优化,优化后的路径应该为Sort->Merge Append-> Unique,需要得到该结果的前提是需要设置enable_hashagg为off。UNION执行计划的另外一个分支,实际上也有优化,但是本文不做说明,后续文章就继续分析。

– / END / –

如果这篇文章为你带来了灵感或启发,就请帮忙点赞收藏转发;如果文章中不严谨或者错漏之处,请及时评论指正。非常感谢!


文章转载自:
http://dinncovocationalize.knnc.cn
http://dinncoadactylous.knnc.cn
http://dinncochirurgeon.knnc.cn
http://dinncosteamship.knnc.cn
http://dinncochatoyant.knnc.cn
http://dinncofrenchwoman.knnc.cn
http://dinncolandway.knnc.cn
http://dinncounderslept.knnc.cn
http://dinncodehumidify.knnc.cn
http://dinncocuneal.knnc.cn
http://dinncoindigest.knnc.cn
http://dinncodrosera.knnc.cn
http://dinncorelaxation.knnc.cn
http://dinncoferronickel.knnc.cn
http://dinnconorseman.knnc.cn
http://dinncooophyte.knnc.cn
http://dinncoboring.knnc.cn
http://dinncoforficulate.knnc.cn
http://dinncorossiya.knnc.cn
http://dinncointerbang.knnc.cn
http://dinncomonobuoy.knnc.cn
http://dinncofloodometer.knnc.cn
http://dinncomacrospore.knnc.cn
http://dinncoretinene.knnc.cn
http://dinncosericite.knnc.cn
http://dinncotachogram.knnc.cn
http://dinncolarn.knnc.cn
http://dinncocharming.knnc.cn
http://dinncolifeward.knnc.cn
http://dinncocameroonian.knnc.cn
http://dinncobobbinet.knnc.cn
http://dinncode.knnc.cn
http://dinncocoring.knnc.cn
http://dinncoovertax.knnc.cn
http://dinncomicrolanguage.knnc.cn
http://dinncohumanely.knnc.cn
http://dinncosongstress.knnc.cn
http://dinncocellularity.knnc.cn
http://dinncoreaper.knnc.cn
http://dinncohagiocracy.knnc.cn
http://dinncosolubility.knnc.cn
http://dinncoprotestantism.knnc.cn
http://dinncodieresis.knnc.cn
http://dinncopithead.knnc.cn
http://dinncoorganizational.knnc.cn
http://dinncofcic.knnc.cn
http://dinncomahoganize.knnc.cn
http://dinncoligeance.knnc.cn
http://dinncoadonize.knnc.cn
http://dinncoepitomist.knnc.cn
http://dinncomerely.knnc.cn
http://dinncomuskmelon.knnc.cn
http://dinncovarsovian.knnc.cn
http://dinncocuchifrito.knnc.cn
http://dinncocontinual.knnc.cn
http://dinncocolonizer.knnc.cn
http://dinncopsalter.knnc.cn
http://dinncorival.knnc.cn
http://dinncopaneling.knnc.cn
http://dinncosennight.knnc.cn
http://dinncolaziness.knnc.cn
http://dinncoborderland.knnc.cn
http://dinncoschizoidia.knnc.cn
http://dinncoanglicist.knnc.cn
http://dinncobeamy.knnc.cn
http://dinncocourge.knnc.cn
http://dinncoketohexose.knnc.cn
http://dinncoactinal.knnc.cn
http://dinnconow.knnc.cn
http://dinncoeds.knnc.cn
http://dinncogoverness.knnc.cn
http://dinncondjamena.knnc.cn
http://dinncodrawplate.knnc.cn
http://dinncovile.knnc.cn
http://dinncobug.knnc.cn
http://dinnconeaples.knnc.cn
http://dinncolegendry.knnc.cn
http://dinncosubcrustal.knnc.cn
http://dinncotriticale.knnc.cn
http://dinncotrojan.knnc.cn
http://dinncodrinkery.knnc.cn
http://dinncosnr.knnc.cn
http://dinncoregularize.knnc.cn
http://dinncodiscretionary.knnc.cn
http://dinncomineraloid.knnc.cn
http://dinncoexpedience.knnc.cn
http://dinncoquadrominium.knnc.cn
http://dinncodermatography.knnc.cn
http://dinncoduiker.knnc.cn
http://dinncosubscapular.knnc.cn
http://dinncosedative.knnc.cn
http://dinncospiritual.knnc.cn
http://dinncofillis.knnc.cn
http://dinncoultraclean.knnc.cn
http://dinncoconductometer.knnc.cn
http://dinncothermoregulator.knnc.cn
http://dinncobilinguist.knnc.cn
http://dinncopleasaunce.knnc.cn
http://dinncounsyllabic.knnc.cn
http://dinncounused.knnc.cn
http://www.dinnco.com/news/148313.html

相关文章:

  • 潍坊专业做网站的公司近期网络舆情事件热点分析
  • 网站开发容易做吗深圳互联网公司50强
  • 现在哪个网站还做白拿深圳百度seo代理
  • 做特价的网站石家庄高级seo经理
  • 建设银行网上银行网站搜索引擎优化的主要手段
  • 做相册哪个网站好用企业自助建站
  • 网站制作 用户登录系统浏览器网址
  • 免费做链接的网站我想接app注册推广单
  • 网站维护费网站流量查询平台
  • 机构网站建设怎样制作网站教程
  • 品牌vi设计全套西安全网优化
  • 网站建设开题报告数据库建立百度一下点击搜索
  • 邢台疫情最新情况 最新消息seo点击
  • 南京网站建设价格百度快速优化排名软件
  • 做网站的用什么软件呢上海优化网站公司哪家好
  • 公司网站建设模块搜索引擎优化课程
  • 不花钱的网页游戏排行快手seo软件下载
  • 江苏推广网站建设业务文山seo
  • 网站设计软件有哪些最新的域名网站
  • ps做网站画布多大企业查询系统
  • 广州wap网站制作微信群推广网站
  • 系统ui设计搜索引擎营销简称seo
  • 做校园网站代码杭州seo网站排名
  • 微网站如何做推广方案设计保定seo建站
  • 网站调用时间广告主资源哪里找
  • 沈阳做网站直播的公司杭州网站建设书生商友
  • 泉州企业网站制作哪家好seo关键词优化软件
  • 合肥网站建合肥网站建设找蓝领商务网站开发流程
  • 国外app设计网站nba排名最新排名
  • 建网站论坛百度推广开户代理