GaussDB解读:Partial Result Cachev缓存中间结果对算子进行加速( 三 )
执行期间的最小命中率 。 如果命中率低于该值 , PTRC将被动态关闭
rds_partial_result_cache_hit_ratio_frequency
执行期间检查命中率的频率 。 如果不能命中的次数达到了该值 , PTRC将会触发检查命中率是否低于最小命中率 。 如果低于最小命中率 , PTRC将自动失效 。
PTRC性能测试
下面是我们使用TPCH的Q17来测试不同数据量下启用PTRC前后的性能变化 。
由于PTRC是一个cache , 所以命中率越高性能提升就会越高 。 当然如果PTRC相关的算子执行代价越高的话 , 那么PTRC获取的性能提升也是越高的 。
MariaDB的subquerycache是对重复扫描算子correlatedsubquery进行加速引入的一个特性 , 我们参照MariaDB的subquerycache测试样例 , 同样基于dbt-3scale1数据集 , 测试PTRC对于correlatedsubquery的加速效果 。
由于MySQL和MariaDB索引创建的不同 , 执行时间与MariaDB不同 , 这里只需要关注相对时间即可 。 测试结果如下表所示:
examplecacheoncacheoffgainhitmisshitrate10.5sec22min3.98sec2,647x1499752599.98%20.26sec1.2sec4.6x628522096.6%30.11sec0.14sec1.27x233777975%41.42sec1.43sec0x02000%examplecacheoncacheoffgainhitmisshitrate0.5sec22min3.98sec2,647x1499752599.98%0.26sec1.2sec4.6x628522096.6%0.11sec0.14sec1.27x233777975%1.42sec1.43sec0x2000%
可以看出:上表中最后一行命中率为0的情况下 , PTRC默认值检查如果miss了200条之后 , 会触发检查命中率 , 发现命中率太低了 , 所以PTRC自动失效了 , 所以可以看到miss列里只有200条 。
MariaDB的测试样例和结果请参考:mariadb.com/kb/en/subqu…
PTRC对于参数化的重复扫描都可以进行适配 , 只要命中率足够 , 就可以加速执行 。 对于查询中的多种算子包括CorrelatedSubquery,NestedLoopJoin,Semijoin,Antijoin都有加速作用 。 PTRC已经正式上线 , 欢迎大家使用 。 返回搜狐 , 查看更多
【GaussDB解读:Partial Result Cachev缓存中间结果对算子进行加速】责任编辑:
- 小米科技|网友脑洞大开,卢伟冰只发了一张图,就被解读为“要从小米撤了”
- 美团财报解读:活跃商户数创历史新高,本地供给成即时零售基本盘
- |美团财报解读:本地供给迅速崛起,踩中即时零售新“爆点”
- |美团财报解读:活跃商户数创历史新高,本地供给成即时零售基本盘
- 交易|财报解读:920万线下实体,在美团勾勒未来蓝图
- 传感器|用Text函数提取时间中的时分秒技巧,案例解读,收藏备用!
- 收藏者称承诺权益未兑现,数字藏品能退款吗?律师解读
- 深圳市|传奇教父任正非一篇内部文章,人们不必做过度的解读
- 律师解读苹果诉前雇员案:无证据证明小鹏存在责任
- 本文转自:中国电子报此文为中国电子报原创稿件|推进智能制造是家电行业高质量发展的方向丨《推进家居产业高质量发展行动方案》解读