Greenplum roaring bitmap与业务场景 (类阿里云RDS PG varbitx, 应用于海量用户 实时画像和圈选、透视)
背景 roaring bitmap是一个压缩比很高同时性能不错的BIT库,被广泛使用(例如Greenplum, ES, InfluxDB……): Roaring bitmaps are compressed bitmaps which tend to outperform conventional compre...
背景 roaring bitmap是一个压缩比很高同时性能不错的BIT库,被广泛使用(例如Greenplum, ES, InfluxDB……): Roaring bitmaps are compressed bitmaps which tend to outperform conventional compre...
背景 Oracle ROWNUM是一个虚拟列,每输出一行递增1。 Oracle rownum 通常被用于LIMIT输出记录数。 SELECT ROWNUM, empno, ename, job FROM emp WHERE ROWNUM < 5 ORDER BY ename; rownum...
背景 PG的数组类型,被广泛应用于 画像系统 , 标签系统。 在一些业务重建中,对数组内容的定义往往包含了多重含义,例如即包含了标签本身,又包含了标签的属性(例如 标签值:权值,时间 等)。 那么如何能高效的进行标签的检索,同时又过滤出符合标签加权值的记录呢? 例子 1、建表 create table t...
背景 实际上我写过很多文档,关于分区表的优化: 《PostgreSQL 商用版本EPAS(阿里云ppas) - 分区表性能优化 (堪比pg_pathman)》 《PostgreSQL 传统 hash 分区方法和性能》 《PostgreSQL 10 内置分区 vs pg_pathman perf profil...
背景 PostgreSQL 的全文检索功能非常的丰富,除了我们说的开放式的parser,字典。同时还支持ranking算法(内置以及扩展)。 那么实际上在搜索的需求中,还有一类位置过滤的需求,例如“速度与激情”这个词,分词后是有位置信息的,我们期望搜到的是“速度”和“激情”之间间隔一个的情况,提高精准度。 P...
背景 PostgreSQL 在 10的版本,内置了分区表的语法,简化了以前需要写 RULE或TG+继承表功能 来实现分区表的模式。 《PostgreSQL 10.0 preview 功能增强 - 内置分区表》 《PostgreSQL 传统 hash 分区方法和性能》 但是内置分区表的性能还有改进的空间,对比...
背景 在索引扫描中,如果两个字段扫描都是区间扫描,那么只能用到某个字段的过滤条件,另一个字段需要全扫描。 例如 create table t(id int, c1 int, c2 int); insert into t select generate_series(1,6000000), rando...
背景 理解PostgreSQL的通信协议可以更好的开发类似SQL代理,SQL中间件,SQL防火墙,连接池等软件。 学习资料与软件 《PostgreSQL 读写分离代理 - Crunchy Proxy(base on golang)》 Postgres on the wire - A look at the P...
背景 PG天天象上活动往期回顾 20180121期天天象上(杭州-娃哈哈赞助) 20180901期天天象上(杭州-skymobi赞助) 20180909期天天象上(北京-纳什空间赞助) 20181013期天天象上(郑州-大象圈社区赞助) PG天天象上活动, 分享内容介...
背景 PostgreSQL 9.6开始就支持并行计算了,意味着聚合、扫描、排序、JOIN等都开始支持并行计算。对于聚合操作来说,并行计算与非并行计算是有差异的。 例如avg聚合,对一张表进行计算时,一个任务中操作和多个并行任务操作,算法是不一样的。 PostgreSQL提供了一套标准的接口,可以支持聚合函数的...