暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 时序数据库插件 timescaledb 2.2.1 , 最快上万倍性能提升

digoal 2021-01-05
3894

作者

digoal

日期

2021-05-14

标签

PostgreSQL , timescaledb , index skip scan , custom scan provider


背景

第一个用custom scan接口的是pg_strom, heteroDb, 使用GPU做计算加速.
TimescaleDB是第二个, 用custom scan实现index skip scan.
https://blog.timescale.com/blog/how-we-made-distinct-queries-up-to-8000x-faster-on-postgresql/

为什么需要index skip scan?
对于大表稀疏值取distinct, first_value, last_value都非常有价值. 因为不需要做index full scan, 扫到一个distinct value分支后返回扫下一个分支而不是按index page链表顺序全扫描.
最快上万倍性能提升.

pic

不过PG内置的CTE递归语法也能实现同样效果, 只是这种SQL对于一般人来说门槛有点高, 一般不会写. 为了降低门槛, 我后面给了很多例子.

知识点:

1、cte实现index skip scan

201611/20161128_02.md 《distinct xx和count(distinct xx)的变态递归优化方法 - 索引收敛(skip scan)扫描》
201802/20180226_05.md 《PostgreSQL SELECT 的高级用法(CTE, LATERAL, ORDINALITY, WINDOW, SKIP LOCKED, DISTINCT, GROUPING SETS, ...) - 珍藏级》
201803/20180323_03.md 《PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化》
201612/20161201_01.md 《用PostgreSQL找回618秒逝去的青春 - 递归收敛优化》
202006/20200615_01.md 《递归+排序字段加权 skip scan 解决 窗口查询多列分组去重的性能问题》

2、custom scan provider

201505/20150525_03.md 《PostgreSQL 9.5 new feature - Writing A Custom Scan Provider》
201806/20180602_02.md 《PostgreSQL GPU 加速(HeteroDB pg_strom) (GPU计算, GPU-DIO-Nvme SSD, 列存, GPU内存缓存)》

3、timescaledb插件

201912/20191218_01.md 《PostgreSQL 时序数据库timescaledb支持compress调度》
201910/20191027_04.md 《PostgreSQL timescaledb插件 pg_prometheus - PostgreSQL作为prometheus的时序数据库必备插件》
201804/20180420_01.md 《[未完待续] PostgreSQL + timescaleDB + Prometheus 物联网时序数据监控组合》
201801/20180129_01.md 《PostgreSQL 时序数据库插件 timescaleDB 部署实践(含例子 纽约TAXI数据透视分析) - PostGIS + timescaleDB => PG时空数据库》
201711/20171102_02.md 《PostgreSQL 按需切片的实现(TimescaleDB插件自动切片功能的plpgsql schemaless实现)》
201704/20170409_05.md 《时序数据库有哪些特点? TimescaleDB时序数据库介绍》

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论