Recent Posts

PostgreSQL 商用版本EPAS(阿里云ppas(Oracle 兼容版)) SQL防火墙使用(白名单管理、防SQL注入、防DDL等)

8 minute read

背景 数据库SQL防火墙是一个安全加强功能,通常被用于防止或减轻数据库被攻击后,泄露数据或者数据被破坏带来的损失。 包括: 1、防止SQL注入。 2、防止业务访问无需访问的对象。 3、防止业务执行DDL。 4、防止业务执行不带WHERE条件的DML。 5、防止业务执行不带WHERE条件或者WHERE条...

电商订单 + 物流信息对称补齐案例 - A, B表,到达时间交叉,增量JOIN补全C数据

2 minute read

背景 在电商平台中,分销是非常普遍的现象,你在淘宝上买的东西,很可能并不是商家本身发货的,和你对接的商家,也许只是一个分销商。 因此一个物流信息,可能涉及到多个订单。 物流、订单表的到达时间可能不完全一致,所以在某一时刻,肯有订单,但是没有物流信息。或者有物流但是没有订单记录。 如果A表代表订单表,B表...

PostgreSQL 商用版本EPAS(阿里云ppas(Oracle 兼容版)) 索引推荐功能使用

2 minute read

背景 PostgreSQL商用版本EnterpriseDB,内置了索引推荐功能,原理与这里描述类似。 《PostgreSQL SQL自动优化案例 - 极简,自动推荐索引》 目前仅支持BTREE索引的(单列或多列)推荐,(有一些限制,暂时不支持继承表的推荐,暂时不支持表达式索引的推荐)。 索引推荐用法 1、创...

PostgreSQL 商用版本EPAS(阿里云ppas(Oracle 兼容版)) HTAP功能之资源隔离管理 - CPU与刷脏资源组管理

2 minute read

背景 随着硬件发展,单机的能力越来越强,单个数据库可能服务于多个业务,或者服务于混合场景。例如即有分析型也有在线事务型处理(HTAP)。 资源隔离管理成为非常重要的需求。 对于Linux的用户,使用cgroup可以用来隔离进程的网络、CPU、IO、内存等。PostgreSQL为进程模型,使用cgroup可以实...

PostgreSQL SQL自动优化案例 - 极简,自动推荐索引

2 minute read

背景 SQL自动优化是数据库的高级特性,其中包括SQL 自动rewrite,自动推荐索引,自动优化执行计划 等。 1、自动优化执行计划 目前postgrespro在做这块 https://postgrespro.com/roadmap/56513 Machine learning Query plann...

PostgreSQL SQL filter (SQL 成本 语义过滤器) - SQL成本防火墙

less than 1 minute read

背景 SQL防火墙,或SQL过滤器,在一些特定的场合可能会比较有用。 例如限制某些用户执行可能会耗费很多资源的SQL,限制用户执行SELECT以外的SQL(尽管SELECT不能保证对数据不产生修改,例如SELECT FUNCTION)。 PostgreSQL 提供了一些HOOK可以用来开发此类功能插件。 p...

PostgreSQL on Docker部署是的shm配置注意

less than 1 minute read

背景 如果你使用docker启动PG时,遇到类似这样的问题,可能你需要看看docker的/dev/shm是不是不够大。 "ERROR: could not resize shared memory segment "/PostgreSQL.388782411" to 50438144 bytes: No spa...