Recent Posts

PostgreSQL 任意字段数组合 ANDOR 条件,指定返回结果条数,构造测试数据算法举例

1 minute read

背景 在进行一些实际的POC测试时,需要根据业务提出的需求构造数据,比如按照任意字段数组合 AND\OR 条件,指定返回结果条数,构造测试数据。 需求 表记录数A 表字段数B 1、N个字段等值OR,命中M条记录 (两个条件无法同时满足) 2、X个字段等值AND,命中Y条记录 字段取值空间如何计算? ...

PostgreSQL sharding : citus 系列5 - worker节点网络优化

4 minute read

背景 citus 节点间的网络需求: 1、cn节点访问所有worker节点。oltp业务的访问较频繁。 2、重分布数据时,worker节点间相互访问。访问频度不大,OLAP业务常见,一旦有可能数据交换吞吐较大。 citus的cn节点连worker节点为有两种模式, 一种为事务级保持连接模式(每条SQL发起...

PostgreSQL 相似搜索插件介绍大汇总 (cube,rum,pg_trgm,smlar,imgsmlr,pg_similarity) (rum,gin,gist)

2 minute read

背景 在搜索业务场景中,相似搜索是一个非常常见的需求。 PostgreSQL有很多插件、索引可以支持海量数据的高效率搜索。 以下是一些案例: 《Greenplum 轨迹相似(伴随分析)》 《PostgreSQL 相似文本检索与去重 - (银屑病怎么治?银屑病怎么治疗?银屑病怎么治疗好?银屑病怎么能治疗好?...

Greenplum 优化CASE - 对齐JOIN字段类型,使用数组代替字符串,降低字符串处理开销,列存降低扫描开销

2 minute read

背景 Greenplum通常被用作OLAP,在一些用户使用过程中,可能因为数据结构设计,SQL问题等原因导致性能不佳,虽然通过增加节点可以解决问题,但是如果能优化的话,可以节约不少硬件资源。 例如 1、对齐JOIN字段类型。如果等值JOIN的字段类型不一致,无法使用HASH JOIN。 2、对齐where条...