本文来源于阿里云-云栖社区,原文点击这里。

标签

PostgreSQL , GIS , PostGIS , Greenplum , 空间检索 , GiST , B-Tree , geohash


背景

《Greenplum 行存、列存,堆表、AO表的原理和选择》

以上文档详细的介绍了行存、列存,堆表、AO表的原理以及选择的依据。

《一个简单算法可以帮助物联网,金融 用户 节约98%的数据存储成本 (PostgreSQL,Greenplum帮你做到)》

以上文档介绍了提升基于列存的全局数据压缩比的方法。

《解密上帝之手 - 阿里云HDB for PostgreSQL数据库metascan特性(存储级、块级、batch级过滤与数据编排)》

以上文档介绍了局部编排,以及阿里云HDB for PostgreSQL数据库的metascan特性,(在不需要索引的情况下,如何提升任意列的选择性)。

压缩实际上是计算(CPU)换空间(磁盘)的做法,该不该做,我们还是先看看压缩比、性能损耗吧。

堆表

postgres=# create table t_heap(id int, c1 text, c2 int);
CREATE TABLE  postgres=# insert into t_heap select id, repeat(md5(random()::text), 128), random()*10000 from generate_series(1,10000000) t(id);
INSERT 0 10000000
Time: 120526.098 ms

某个维度count查询。

postgres=# explain analyze select c2,count(*) from t_heap group by c2;  QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------  Gather Motion 48:1  (slice2; segments: 48)  (cost=1578949.03..1579074.98 rows=10076 width=12)  Rows out:  10001 rows at destination with 1354 ms to end, start offset by 519 ms.  ->  HashAggregate  (cost=1578949.03..1579074.98 rows=210 width=12)  Group By: t_heap.c2  Rows out:  Avg 208.4 rows x 48 workers.  Max 223 rows (seg17) with 0.001 ms to first row, 692 ms to end, start offset by 581 ms.  ->  Redistribute Motion 48:48  (slice1; segments: 48)  (cost=1578596.37..1578797.89 rows=210 width=12)  Hash Key: t_heap.c2  Rows out:  Avg 10001.0 rows x 48 workers at destination.  Max 10704 rows (seg17) with 596 ms to end, start offset by 581 ms.  ->  HashAggregate  (cost=1578596.37..1578596.37 rows=210 width=12)  Group By: t_heap.c2  Rows out:  Avg 10001.0 rows x 48 workers.  Max 10001 rows (seg0) with 0.006 ms to first row, 131 ms to end, start offset by 566 ms.  ->  Seq Scan on t_heap  (cost=0.00..1528595.58 rows=208337 width=4)  Rows out:  Avg 208333.3 rows x 48 workers.  Max 208401 rows (seg18) with 26 ms to first row, 901 ms to end, start offset by 573 ms.  Slice statistics:  (slice0)    Executor memory: 359K bytes.  (slice1)    Executor memory: 724K bytes avg x 48 workers, 724K bytes max (seg0).  (slice2)    Executor memory: 388K bytes avg x 48 workers, 388K bytes max (seg0).  Statement statistics:  Memory used: 128000K bytes  Settings:  optimizer=off  Optimizer status: legacy query optimizer  Total runtime: 1874.143 ms
(22 rows)  Time: 1879.480 ms

无索引,某个单值查询

展开全文

代码干货 | 行存、列存_堆表、AO表性能对比-阿里云HDB for PostgreSQL最佳实践相关推荐

  1. 行存、列存,堆表、AO表性能对比 - 阿里云HDB for PostgreSQL最佳实践

    标签 PostgreSQL , GIS , PostGIS , Greenplum , 空间检索 , GiST , B-Tree , geohash 背景 <Greenplum 行存.列存,堆表 ...

  2. 技术干货| 阿里云基于Hudi构建Lakehouse实践探索

    简介:阿里云高级技术专家王烨(萌豆)在Apache Hudi 与 Apache Pulsar 联合 Meetup 杭州站上的演讲整理稿件,本议题介绍了阿里云如何使用 Hudi 和 OSS 对象存储构建 ...

  3. 解密上帝之手 - 阿里云HDB for PG特性(数据改命与任意列高效过滤)

    标签 PostgreSQL , metascan , 块级过滤 , 块级统计信息 , BATCH级统计信息 , brin , 区间索引 , 块级索引 , batch级索引 , 数据编排 , 存储计算分 ...

  4. 技术干货| 阿里云基于Hudi构建Lakehouse实践探索「内附干货PPT下载渠道」

    简介: 阿里云高级技术专家王烨(萌豆)在Apache Hudi 与 Apache Pulsar 联合 Meetup 杭州站上的演讲整理稿件,本议题介绍了阿里云如何使用 Hudi 和 OSS 对象存储构 ...

  5. Java代码实现行转列

    文章目录 前言 一.如何转换? 二.转换步骤 前言 最近在写业务的时候,遇到一个需求,要求把数据库的数据行,根据某个维度,把行转换为列去显示.如下图 说明: 系统里某个数据有一系列属性,属性值会根据某 ...

  6. mysql行转列函数_一个小知识点-Hive行转列实现Pivot

    前言 传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式. 传统数据库方式 ...

  7. mysql 行转列查询优化_行转列及列转行查询

    开发过程中常遇到行转列或是列转行的问题,即需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 一.行转列:将原来同一列下多行的不同内容作为多个字段, ...

  8. java制作九行九列表格_将文中后9行文字转换成一个9行4列的表格,设置表格居中,表格列宽为2.5厘米..._考试资料网...

    问答题在考生文件夹下打开文档word.docx,按照要求完成下列操作并以该文件名(word.docx)保存文档. [文档开始] 2009年北平市中考招生计划低于10万人 晨报讯伴随初中毕业生人数连年下 ...

  9. mysql动态行转列函数_[MSSQL]采用pivot函数实现动态行转列

    环境要求:2005+ 在日常需求中经常会有行转列的事情需求处理,如果不是动态的行,那么我们可以采取case when 罗列处理. 在sql 2005以前处理动态行或列的时候,通常采用拼接字符串的方法处 ...

最新文章

  1. 手机与Camera CCM技术发展趋势
  2. 安装QCreator2.5+Qt4.8.2+MinGW_gcc_4.4
  3. 操作系统信号量与P、V操作 初步认识整理
  4. php mysql table_关于php:MySQL Table不存在错误,但确实存在
  5. php indexof的用法,c语言中indexof的用法有哪些
  6. 大专学完出来学计算机,浙江2021年计算机学校读出来是什么文凭
  7. FreeBSD 9.1安装KMS 这是一个伪命题###### ,9....
  8. 如何让Visual Studio 2010支持HTML5和CSS3
  9. uni-app微信小程序动态样式设置;微信小程序style行内式无效;微信小程序style行内式编译报错;微信小程序:style设置样式
  10. Java高级语法笔记-文件及目录操作
  11. IOS开发基础知识--碎片9
  12. 市面上流行编曲软件盘点,那一款是你的菜?
  13. android高效模拟器,51模拟器
  14. 西门子200plc与英威腾GD变频器modbus通讯
  15. python的开发环境
  16. linux 用户配额设置,Linux如何设置磁盘配额
  17. 霍夫斯特拉大学计算机科学专业排名,院校排名
  18. 从消费互联网到产业互联网:平台思维始终是主导
  19. oracle批量查询更新,Oracle批量查询、删除、更新使用BULK COLLECT提高效率
  20. Three.js fbx文件导入

热门文章

  1. 统计学考研笔记:矩估计量计算1
  2. 极客时间MySQL实战45讲学习笔记
  3. 程序员相爱相杀鄙视指南
  4. 石家庄铁道大学毕业设计计算机,石家庄铁道大学毕业设计模板.docx
  5. c++实现argmax
  6. 2.简单爬虫————爬取拉勾网招聘信息(一)
  7. 简单的HTML5个人简历
  8. 对比excel文件是否相同的好办法
  9. 微软手机我的世界服务器,我的世界已经手机端和电脑端一起变成了神一般的游戏...
  10. 四平青年背景音乐及经典台词选