加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

10 个你不知道的 PostgreSQL 成果

发布时间:2018-08-18 02:18:36 所属栏目:编程 来源:开源中国编译
导读:技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战 英文原文:The Postgres 10 feature you didn't know about: CREATE STATISTICS 假如你曾行使 Postgres 做过一些机能优化,你或者已经行使过 EXPLAIN 。EXPLAIN 向你展示了 Postgre
副问题[/!--empirenews.page--] 技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战

 10 个你不知道的 PostgreSQL 成果

英文原文:The Postgres 10 feature you didn't know about: CREATE STATISTICS

假如你曾行使 Postgres 做过一些机能优化,你或者已经行使过 EXPLAIN 。EXPLAIN 向你展示了 PostgreSQL planner 为提供的语句天生的执行打算。它声名白语句涉及到的表将会行使次序扫描、索引扫描等方法举办扫描,在行使多表的环境下将会行使毗连算法。可是, Postgres 是怎样发生这些筹划的?

抉择行使哪种筹划的一个很是重要的输入是 planner 网络到的数据统计。这些统计的数据可以或许使 planner 评估执行筹划的某一部门会返回几多行,继而影响到行使哪一种筹划或毗连算法。它们首要是通过运行 ANALYZE 或 VACUUM(和一些 DDL 呼吁,好比说 CREATE INDEX )来收罗或更新的。

这些统计信息由 planner 存储在 pg_class 和 pg_statistics 中。Pg_class 根基上存储了每个表和索引中的条目总数,以及它们所占用的磁盘块数。Pg_statistic 存储关于每列的统计信息,譬喻哪些列的 % 值为 nul l,哪些是最常见的值,直方图界线等。你可以查察下面的示例,以相识 Postgres 在下表中为 col1 网络的统计信息范例。下面的查询输出展示了 planner(正确地)预估表中列 col1 中有 1000 个差异的值,而且还对最常见的值、频率等举办了其他预估。

请留意,我们已经查询了 pg_stats(一个拥有更多可读版本的列统计信息的视图)。

  1. CREATE TABLE tbl (                                                                         
  2.     col1 int,                                                                              
  3.     col2 int                                                                               
  4. );                                                                                         
  5.  
  6. INSERT INTO tbl SELECT i/10000, i/100000                                                   
  7. FROM generate_series (1,10000000) s(i);                                                    
  8.  
  9. ANALYZE tbl;                                      
  10.  
  11. select * from pg_stats where tablename = 'tbl' and attname = 'col1'; 
  12. -[ RECORD 1 ]----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
  13. schemaname             | public 
  14. tablename              | tbl 
  15. attname                | col1 
  16. inherited              | f 
  17. null_frac              | 0 
  18. avg_width              | 4 
  19. n_distinct             | 1000 
  20. most_common_vals       | {318,564,596,...} 
  21. most_common_freqs      | {0.00173333,0.0017,0.00166667,0.00156667,...} 
  22. histogram_bounds       | {0,8,20,30,39,...} 
  23. correlation            | 1 
  24. most_common_elems      |  
  25. most_common_elem_freqs |  
  26. elem_count_histogram   | 

单列统计数据不敷时

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读