Recent Posts

PostgreSQL手机行业经营分析、决策系统设计 - 实时圈选、透视、估算

8 minute read

背景 经营分析、决策支持是现代企业的一个让数据发挥有效价值的分析型系统。 在各个行业中随处可见,例如共享充电宝中,协助销售了解实时的设备租赁情况,销售业绩。在电商中,协助小二和商户发掘目标用户群体。金融行业中,协助输出国民的存款、消费、贷款的画像。 PostgreSQL, Greenplum都是非常适合于经营...

[未完待续] 数据库生命周期管理

less than 1 minute read

背景 数据库选型 云端生态系统设计 TP、AP、流、图、时序、空间、搜索、系统架构设计 冷热存储设计 安全系统设计 审计系统设计 监控系统设计 网络设计 硬件评估与规划 benchmark 部署 读写分离设计 LB设计 sharding MPP HA multi-master设计 备份 时间点恢复 闪回 容灾 异...

PostgreSQL multipolygon 空间索引查询过滤精简优化 - IO,CPU放大优化

2 minute read

背景 在PostgreSQL中,目前对于空间对象的索引,采用的是GiST索引方法,空间树结构如下,每个ENTRY都是一个BOX: 如果对象是多边形,那么在索引结构中,会存储这个多边形的bound box。 那么对于非box类型,一定是会出现空间放大的。 另一方面,如果输入条件是个多边形,那么同样会将...

PostgreSQL 传统 hash 分区方法和性能

5 minute read

背景 除了传统的基于trigger和rule的分区,PostgreSQL 10开始已经内置了分区功能(目前仅支持list和range),使用pg_pathman则支持hash分区。 从性能角度,目前最好的还是pg_pathman分区。 但是,传统的分区手段,依旧是最灵活的,在其他方法都不奏效时,可以考虑传统方...

PostgreSQL distinct 与 Greenplum distinct 的实现与优化

17 minute read

背景 求distinct是业务的一个普遍需求,例如每天有多少用户,每个省份有多少用户,每天有多少类目的用户等。 select date,count(dinstinct user) from tbl group by date; select date, province, count(distinct...