🐘 PostgreSQL 学习路线
131 个互动教程
PostgreSQL 入门 — 高级开源数据库
了解 PostgreSQL:功能最强大的开源关系型数据库
PostgreSQL 函数与存储过程
全面学习PostgreSQL函数:内置函数、自定义PL/pgSQL函数、存储过程、触发器函数
PostgreSQL 全文搜索
学习PostgreSQL中PostgreSQL 全文搜索 — PostgreSQL教程的详细用法和最佳实践
PostgreSQL CTE — 公用表表达式
WITH 子查询、递归 CTE 遍历树形结构
PostgreSQL 窗口函数
ROW_NUMBER/RANK/AVG OVER PARTITION
PostgreSQL 触发器
学习PostgreSQL中PostgreSQL 触发器 — PostgreSQL教程的详细用法和最佳实践
PostgreSQL 索引类型
B-tree/GIN/GiST/BRIN 索引
PostgreSQL JSONB 进阶
@> 包含查询、索引、聚合
PG 性能调优
EXPLAIN/VACUUM/配置
PostgreSQL 扩展
学习PostgreSQL中PostgreSQL 扩展 — PostgreSQL教程的详细用法和最佳实践
PostgreSQL 高级聚合
学习PostgreSQL中PostgreSQL 高级聚合 — PostgreSQL教程的详细用法和最佳实践
PostgreSQL JSON 处理
JSON/JSONB 类型、操作符、索引
PostgreSQL 全文搜索
PostgreSQL全文搜索:tsvector/tsquery、to_tsvector/to_tsquery、中文分词(zhparser/jieba)、GIN索引加速、ts_rank排序相关性排名、与Elasticsearch对比
PostgreSQL 表分区
PostgreSQL表分区:声明式分区(RANGE/LIST/HASH)、分区裁剪Partition Pruning、ATTACH/DETACH PARTITION、子分区Sub-partitioning、与MySQL分区对比
PostgreSQL 行级安全 RLS
PostgreSQL RLS:Row Level Security、ALTER TABLE ENABLE ROW LEVEL SECURITY、CREATE POLICY策略(USING/WITH CHECK)、按租户/用户隔离数据、BYPASSRLS绕过
PostgreSQL 审计日志
PostgreSQL审计:pgaudit扩展会话/对象审计日志、log_statement配置(ddl/mod/all)、pgAudit输出格式( AUDIT: SESSION/OBJECT)、审计日志安全存储/轮转策略
PostgreSQL 高级索引类型
PostgreSQL高级索引:GIN倒排索引(JSONB/全文搜索/数组)、GiST通用搜索树(几何/全文/范围)、BRIN块范围索引(大表自然排序数据/比B-tree小几百倍)、SP-GiST空间分区、Hash索引(仅=操作)
PostgreSQL CTID 行物理地址
CTID系统列(行的物理地址/类似于Oracle ROWID):(page_number,tuple_index)定位行、用于快速去重(DELETE USING self join ON ctid)、vacuum后CTID可能变化、ctid vs 主键唯一标识
PostgreSQL 流复制
PostgreSQL流复制:WAL Write-Ahead Log预写日志、Primary主库→Standby备库通过WAL sender→WAL receiver流复制、同步复制synchronous_commit(remote_apply/remote_write/on/local/off) vs异步复制、Logical Replication逻辑复制(发布Publication/订阅Subs
PostgreSQL 扩展开发
PostgreSQL自定义扩展开发:PGXN扩展网络、CREATE EXTENSION和extension control file(.control)+SQL脚本(.sql)、C语言扩展(PG_MODULE_MAGIC/PG_FUNCTION_INFO_V1/Datum/SRF_SetReturningFunction返回集合/SPI服务提供者接口在C中执行SQL)、与pgx(Rust)/plr
PG分区表实战与优化
学会使用PostgreSQL分区表提升大数据量查询性能
PG并行查询加速分析
掌握PostgreSQL并行查询原理与配置,加速大数据分析
PG逻辑复制入门与配置
学习PostgreSQL逻辑复制实现跨数据库实时同步
PostgreSQL 特有功能 — SERIAL与序列
PostgreSQL序列:SERIAL/BIGSERIAL自增类型(背后是SEQUENCE)、currval/nextval/setval操作序列、GENERATED AS IDENTITY(SQL标准)vs SERIAL
PostGIS扩展与空间查询
学习使用PostGIS扩展进行地理空间数据存储与分析
PG FDW外部数据包装器
学会使用FDW在PostgreSQL中访问远程数据库和其他数据源
PostgreSQL 数组类型
PostgreSQL数组:数组列定义、数组字面量、数组操作符(@>包含/<@被包含/&&重叠)、unnest()展开数组、array_agg()聚合为数组、数组索引GIN
PG事件触发器监控DDL
学习使用事件触发器捕获和响应数据库DDL操作
PostgreSQL 全文搜索
PostgreSQL全文搜索:tsvector/tsquery类型、to_tsvector/to_tsquery函数、GIN索引加速、排名ts_rank、中文分词zhparser、与Elasticsearch对比
PG行级安全策略实现
学习使用行级安全(RLS)控制用户对表中特定行的访问
PostgreSQL 窗口函数 Window Functions
PostgreSQL窗口函数:OVER()窗口定义、PARTITION BY分区、ORDER BY排序、ROW_NUMBER/RANK/DENSE_RANK/LEAD/LAG、聚合窗口SUM/AVG OVER、ROWS BETWEEN帧
PG表继承与数据分区
理解PostgreSQL表继承机制及其在数据建模中的应用
PG咨询锁并发控制
学习使用PostgreSQL咨询锁实现应用层自定义并发控制
PG LISTEN/NOTIFY异步消息
学习使用PostgreSQL的LISTEN/NOTIFY实现异步消息通信
PG分区表实战
学习PostgreSQL分区表的创建、管理与查询优化
PG扩展PostGIS空间数据库
学习PostGIS安装、空间数据类型与常见GIS查询
PG FDW外部数据包装器
学习使用FDW连接远程PostgreSQL或其他数据库
PG分区表实战
掌握PostgreSQL分区表的概念、类型与使用场景,学会创建和管理分区表。
PG扩展PostGIS地理空间查询
使用PostGIS扩展进行空间数据存储与分析。
PG FDW外部数据包装器
通过FDW连接外部数据源,实现跨数据库查询。
PG咨询锁应用
学习PostgreSQL咨询锁的原理、使用场景和实现方法
视图的延迟绑定与模式演化实战
深入PostgreSQL中视图的延迟绑定(late binding)机制,讲解如何借助该特性在基表结构变化后依然保持视图有效,并通过实践演示模式升级中的常见陷阱。
范围类型与排他约束:构建冲突检测系统
抛开常见的B-tree唯一约束,使用PostgreSQL范围类型与GiST索引实现的排他约束,解决时间重叠、IP地址段冲突等复杂业务场景。
表级法医学:用WAL日志恢复被删除的单行数据
超越传统pg_dump备份思维,直接从PostgreSQL预写式日志(WAL)中解析并恢复特定表被误删的单行记录,适用于无备份的紧急数据救援。
自定义等待事件:编写扩展监控特定锁竞争
PostgreSQL内置丰富的等待事件,但业务场景往往需要监控自定义资源(如应用层锁、API限流)。本教程教你编写C扩展,注册自定义等待事件并集成到pg_stat_activity。
增量JSONB更新:利用路径操作符避免全字段重写
大多数教程只介绍JSONB的简单存取,本主题深入PostgreSQL 16+的jsonb_set与路径操作符,展示如何只更新深层嵌套的键而不影响其他字段,同时解决并发更新丢失问题。
规则系统再造:用重写规则实现轻量级数据分发
PostgreSQL的规则系统(RULE)常被忽略但功能强大。本教程用规则实施INSERT、UPDATE、DELETE的自动重定向到多个表,实现无需扩展的轻量级数据分发或审计日志。
双主节点冲突解决:基于应用语义的定序器设计
不同于BDR或Citus的方案,本教程教你手动构建基于两阶段提交和冲突解决函数的多主架构,实现最终一致性且可自定义合并逻辑(如最后写入胜利、CRDT增量合并)。
PL/Rust自定义聚合函数:高性能流式统计
当内置聚合函数(avg, sum)无法满足复杂统计需求(如滑动百分位数、流式去重计数)时,利用PL/Rust扩展编写类型安全、内存可控的自定义聚合。
超越静态分区:使用pg_partman实现时间自动滚动
大多数分区教程止步于CREATE TABLE PARTITION OF,本教程深入pg_partman扩展,展示如何自动化创建未来分区、清理过期分区以及处理分区键的时区与夏令时问题。
编写背景工作进程:在数据库内核中运行定时任务
摆脱外部cron或pg_cron扩展,用PostgreSQL背景工作进程(Background Worker)API编写一个直接运行在数据库进程中的定时任务,实现毫秒级精度和事务内调度。
LATERAL JOIN 高级应用:行级子查询与动态数据透视
深入讲解 LATERAL 关键字的原理,以及如何利用它在 FROM 子句中对每一行执行动态子查询,实现复杂的数据透视和行转列操作。
范围类型与操作符:时间区间、数字范围与排除约束
讲解 PostgreSQL 内置的范围类型(int4range, tsrange 等),范围操作符(包含、重叠、相邻)以及如何利用排除约束实现无重叠调度。
使用 foreign data wrapper 读取外部 CSV/JSON 文件
讲解 file_fdw 扩展的安装与配置,如何将外部 CSV 或 JSON 文件映射为 PostgreSQL 外表,实时查询文件内容而无需导入。
规则系统(RULE)实战:查询重写与视图自动更新
深入 PostgreSQL 规则系统,学习如何利用 CREATE RULE 实现查询重写、自动数据转换以及替代触发器完成复杂逻辑。
逻辑复制发布/订阅:跨版本数据同步与部分表复制
讲解 PostgreSQL 原生逻辑复制的发布(PUBLICATION)与订阅(SUBSCRIPTION)机制,实现跨版本、跨数据库、选择性表级别的数据同步。
JSONB 路径查询(JSONPath):复杂文档搜索与索引优化
学习 PostgreSQL 15+ 的 JSONPATH 语法,如何进行深层嵌套文档的条件过滤、模糊匹配,以及如何创建 GIN 索引加速查询。
咨询锁(Advisory Locks)与 SKIP LOCKED:轻量级工作队列
利用 pg_try_advisory_lock 和 SELECT ... SKIP LOCKED 实现高并发、无锁冲突的任务队列,避免行锁争用。
PL/Python 编写用户自定义函数:在 SQL 中运行机器学习推理
使用 PL/Python 语言扩展创建 UDF,在数据库内部直接调用 scikit-learn 等 Python 库进行模型预测,避免数据搬运。
MERGE(UPSERT)高级应用:条件更新与数据同步
详解 MERGE 语句(INSERT ... ON CONFLICT 的增强版),实现根据条件进行插入、更新或删除的复合操作,适用于 ETL 增量同步。
创建自定义聚合函数:从简单累加到滑动窗口统计
讲解如何使用 CREATE AGGREGATE 定义自己的聚合函数,包括状态转移函数、最终函数,以及实现滑动窗口统计(如移动平均)。
深入PostgreSQL空闲空间映射表:物理存储优化实战
揭示FSM如何决定数据行插入位置,通过修改FSM实现自定义存储布局。
Citus分片下的跨节点并行查询与分布键选择陷阱
讲解Citus分布表的分片策略,以及如何避免跨节点JOIN导致的性能灾难。
pgvector扩展:构建毫秒级语义搜索与混合过滤
超越基础向量搜索,实现按类别+向量距离的多维检索。
声明式分区:实现零停机的时间序列数据归档与恢复
利用分区表自动移动数据到冷存储,无需修改应用代码。
SQL/JSON路径查询:用表达式索引加速JSON数据检索
利用PostgreSQL 12+的JSONPATH语法,在复杂JSON文档中执行类XPath的查询。
外部数据包装器:将多个异构数据库联合为统一视图
通过FDW连接MySQL、MongoDB和CSV文件,实现跨源事务。
行级安全策略:实现多租户数据隔离的最佳实践
通过RLS让不同租户只能看到自己的数据,无需修改查询。
管道模式批量插入:比COPY快3倍的秘密武器
利用libpq的管道模式,在一条网络往返中发送数千条INSERT。
基于触发器的审计日志:实现时间旅行与行级撤销
记录所有数据变更历史,并允许回滚到任意时间点。
覆盖索引与仅索引扫描:消除所有回表访问
利用INCLUDE子句创建无需访问堆的索引,大幅降低I/O。
深入PostgreSQL回滚日志(Undo Log)的内部机制
本教程带你探索PostgreSQL独有的回滚日志实现(与MySQL InnoDB不同),理解其在MVCC中的角色、存储格式、以及如何通过pg_waldump分析回滚行为。
LATERAL连接:超越传统子查询的10个高级场景
PostgreSQL的LATERAL JOIN是SQL最强大的特性之一,但多数教程仅停留在基础用法。本教程将展示其在分页去重、多列聚合、以及递归查询中的独特应用。
用C语言编写PostgreSQL自定义后台工作进程(Background Worker)
PostgreSQL支持通过动态库加载自定义后台工作进程,用于实现内部分布式调度、数据清理或自定义监控。本教程从零开始编写一个简单的后台进程并注册到数据库。
JSONB路径查询(SQL/JSON Path)的实战艺术
PostgreSQL 12+引入的SQL/JSON Path语言提供远超传统->>操作符的查询能力。本教程涵盖模式匹配、算术运算、以及路径表达式的性能优化技巧。
自定义GiST索引:为你的数据类型实现空间搜索
PostgreSQL的GiST索引不仅支持内置几何类型,还可扩展至自定义数据类型。本教程实现一个简单的“时间区间”数据类型,并为其编写GiST支持函数以实现高效区间查询。
表访问方法(Table Access Method)API:构建自己的存储引擎
PostgreSQL 12+的Table Access Method接口允许开发者替换默认堆存储。本教程将设计一个简单的列存模拟引擎,演示如何注册自定义访问方法并处理读写请求。
利用heredoc和DO块实现动态SQL元编程
PostgreSQL的匿名代码块(DO)结合美元引用的heredoc风格,可以生成复杂的动态SQL。本教程展示如何用这种技术批量生成分区表、自动创建索引以及实现跨数据库的ETL脚本。
物理复制冲突深度诊断与解决方案
PostgreSQL主从复制中常见的冲突(如vacuum与查询冲突)常导致复制中断。本教程讲解冲突类型、如何通过hot_standby_feedback和vacuum_defer_cleanup_age调优,以及使用pg_replication_slots监控。
并行查询执行计划的黑盒调优:从等待事件到资源控制
当PostgreSQL并行查询遇到性能瓶颈时,90%的问题出在资源调度上。本教程聚焦并行哈希连接(Parallel Hash)的等待事件、work_mem与hash_mem_multiplier的交互,以及如何使用pg_hint_plan强制并行度。
JSONB字段的原子更新与行锁陷阱
更新JSONB字段中的单个键默认会重写整个文档,导致并发场景下的写冲突。本教程揭示行锁在JSONB操作中的微妙行为,并演示如何利用jsonb_set和条件表达式实现安全的部分更新。
深入 PostgreSQL 轻量级锁(Latch):内核级线程同步原语
剖析 PostgreSQL 中用于进程间与线程间高效等待/唤醒的 Latch 机制,对比条件变量与信号量,演示如何在内核扩展中安全使用 Latch 避免忙等。
表重写(Table Rewrite)的精确探测与影响分析
揭示哪些操作会触发表的物理重写(全表重写而非仅 DDL),如 ALTER COLUMN TYPE、VACUUM FULL、CLUSTER。教授如何通过 pg_class.relfrozenxid、pg_stat_user_tables.n_tup_rewritten 在 rewrite 发生前预测和事后审计。
MultiXactId 回卷防护:被忽视的并发死锁隐患
深入行级锁的事务标识符 MultiXactId,解释其与普通 XID 回卷的差异、如何监控 MultiXact 消耗、以及当 multi 接近回卷时导致全库只读的机制。
自定义 pg_stat_statements 查询统计:延展点与挂钩
超越常规使用,探讨 pg_stat_statements 的扩展挂钩(hooks)、如何添加自己的统计维度(如等待事件合并)、以及如何重置特定 queryid 而不影响全局。
float4 / float8 的二进制存储奥秘:精度损失与索引优化
拆解 PostgreSQL 中单精度(float4)与双精度(float8)在磁盘上的 IEEE 754 编码,演示为何索引比较可能导致意外结果,以及如何通过隐式类型转换规避。
深入 Tuple 格式:HeapTupleHeader 与 TOAST 的位级交互
从裸页面结构解析 HeapTupleHeader 的隐藏字段(t_xmin, t_xmax, t_ctid),结合 t_infomask 标志位判断可见性。特别讲解 TOAST 指针如何嵌入行内,以及当行记录超过页面 1/4 时自动触发 TOAST 的完整过程。
并行 Append 执行器的内部调度与倾斜处理
当查询包含 UNION ALL 或分区表时,PostgreSQL 使用 Parallel Append 节点。本教程深入其工作器分配算法(区间分配 vs 块分配),展示如何通过调试参数强制并行,以及如何处理数据倾斜导致部分工作器闲置的问题。
构建自定义后台工作进程(Background Worker)实现数据预取
从零实现一个 PostgreSQL 后台工作进程扩展,定期检查并使用 COPY 或 INSERT 将外部数据预载入缓存表。讲解共享内存初始化、信号处理、以及如何注册动态库。
动态共享内存(DSM)段的高级管理:跨进程状态共享
超越基本的 dsm_create,讲解如何设计多进程共享的环形缓冲区、使用 dsm_handle 在扩展间传递段、以及利用 LWLock 保护段内的并发写。附带调试工具。
实时自定义同义词词典:不重启数据库更新全文索引
绕过传统文件重加载方式,使用辅助表与触发器动态维护同义词词库,并通过自定义文本搜索配置实现近实时同义词扩展,无需挂起重启。
基于触发器的审计回滚与时间旅行查询
讲解如何利用触发器+hstore或JSONB实现行级历史追踪,并支持一键回滚到任意历史版本。
利用并行CTE从多个异构源同步汇总数据
演示如何在一个查询中使用多个CTE并行拉取不同表/外部数据包装器(FDW)的数据,并最终合并。
分区表间智能连接:分区感知连接与混合执行计划
当两个表按相同键分区时,如何强制或优化分区修剪实现等值连接,以及处理分区键不一致时的桥接策略。
使用事件触发器实现DDL变更全生命周期管理
与普通行级触发器不同,事件触发器可以捕获CREATE TABLE、ALTER等操作,用于自动记录元数据变更或阻止危险操作。
基于SQL/窗口函数构建自定义聚合:向量中位数与百分位数
PostgreSQL内置median? 没有。本教程展示如何利用ordered-set aggregate或通过窗口函数+array_agg+分位插值实现高性能中位数和任意百分位数。
多租户行级安全:基于会话变量与LDAP组动态策略
超越简单的current_user检查,利用set_config设置自定义会话标签,结合LDAP/外部表动态生成行级安全策略。
GiST排除约束:禁止时间段重叠与资源冲突
Exclusion约束利用GiST索引实现复杂冲突检测,如会议室预订不能有时间重叠、IP地址池不能冲突。不同于唯一约束。
JSONB高级索引:模拟搜索引擎的全文+属性过滤
不再只用GIN简单索引,而是组合GIN+btree或部分索引,实现类似ElasticSearch的过滤+全文搜索,且毫秒级响应。
外部数据写入推送与分布式事务协调
使用FDW写入远程表时,如何确保本地事务与远程事务原子性(两阶段提交)以及强制推送WHERE条件减少网络传输。
在PostgreSQL中使用PLV8进行高性能数值计算与机器学习评分
利用V8引擎在数据库内执行JavaScript,处理复杂业务逻辑(如矩阵运算、决策树预测),比plpgsql快10倍。
用Git管理PostgreSQL数据库Schema版本迁移
深度讲解如何将数据库结构变更与Git仓库同步,实现自动化版本控制,避免传统手工迁移脚本的混乱。
为时间序列数据编写自定义聚合函数
探讨PostgreSQL内置聚合函数的局限,亲手使用CREATE AGGREGATE结合PL/pgSQL创建专用于金融、物联网等场景的滑动窗口聚合。
利用递归CTE实现任意深度的行列级权限模型
突破传统RBAC,使用递归CTE构建支持组织树、资源继承的多层权限检查引擎。
使用外部数据包装器(FDW)搭建实时ETL管道
抛弃批处理脚本,用PostgreSQL FDW直接连接异构数据源(MySQL、CSV、API)实现增量同步。
基于pg_notify构建异步事件驱动架构
利用PostgreSQL原生的LISTEN/NOTIFY机制,结合PL/pgSQL触发器,构建零依赖的异步事件处理系统。
地理围栏与空间索引:超越PostGIS的轻量方案
当PostGIS过于庞大时,使用cube和earthdistance扩展实现千米级精度的经纬度查询。
使用PL/V8在数据库内执行复杂的JavaScript转换
在PostgreSQL中嵌入V8引擎,利用JavaScript的库(如Lodash)进行数据清洗、验证和转换。
利用分区表实现零停机Schema变更
通过将大表拆分为分区,在不停服的情况下添加、修改或删除列,并保持对外服务的连续性。
安全的动态SQL:EXECUTE…FORMAT与SQL注入防御
深入PL/pgSQL中动态查询构建的最佳实践,使用FORMAT和quote_ident防止SQL注入同时保持灵活性。
用递归CTE和ltree将PostgreSQL变成图数据库
不依赖第三方图数据库,利用ltree扩展和递归CTE实现最短路径、环检测和祖先查询。
MVCC可见性映射表与冻结事务的底层机制
深入PostgreSQL的可见性映射表(Visibility Map)与冻结事务(Freeze)的协作原理,理解元组可见性判断、清空死元组和事务ID回卷防护的实际过程。
LATERAL连接驱动的子查询高级模式
超越简单JOIN,使用LATERAL子查询实现每行动态展开、TOP-N per group、列聚合复用等复杂场景。掌握减少子查询重复计算的技巧。
排他约束:处理时态数据与区间冲突的利器
利用PostgreSQL排他约束(EXCLUDE)结合GiST索引,轻松禁止重叠时间区间、地理范围冲突等复杂业务规则,替代触发器实现声明式约束。
并行查询加速:work_mem与动态调整背后的秘密
剖析PostgreSQL并行查询的执行计划、并行度控制以及work_mem参数对hash join和排序的巨大影响。学会通过调整相关参数避免溢出磁盘。
JSONB与GIN索引:混合文档搜索与动态属性查询
结合JSONB和全文搜索索引,实现灵活的半结构化数据查询。学习如何为JSONB中的文本字段建立GIN索引支持模糊搜索和键值路径检索。
窗口函数帧子句:范围、行和组的高级滑动窗口
掌握帧子句(ROWS/RANGE/GROUPS)在移动平均、累计和、同比环比计算中的细微差别,理解默认帧边界和不规范帧导致的性能陷阱。
外部数据包装器:跨数据类型源联合查询的实践
使用PostgreSQL FDW连接MySQL、CSV文件甚至远程pg库,实现异构数据联邦查询。重点讲解用户映射、下推优化和写操作限制。
CTE数据修改:链式DML与副作用控制
利用公用表表达式(CTE)将多个INSERT/UPDATE/DELETE语句串联成单一原子操作。学习如何在WITH子句中返回受影响行并用于后续步骤,同时掌握防止副作用泄露的技巧。
分区裁剪与动态分区管理:自动创建新分区的艺术
探索PostgreSQL分区表的内部裁剪机制,以及如何结合pg_partman或自定义触发器实现按时间自动创建新分区,避免手动维护。
布隆过滤器索引:海量属性组合查询的加速器
当需要查询大量列组合时,传统B-tree索引组合爆炸。PostgreSQL的布隆过滤器索引通过位图快速排除不匹配行,适合多列任意组合等值查询。学习创建与调优。
PostgreSQL自定义操作符:从零构建领域特定语法
深入讲解如何创建满足特定业务逻辑的自定义操作符,包括优先级、结合律和函数映射,避免与内置操作符冲突。
并行查询的黑盒调试:max_parallel_workers与资源隔离实战
超越基础配置,讲解如何利用pg_stat_activity和系统视图诊断并行查询瓶颈,并针对混合工作负载设置动态资源限制。
在PostgreSQL中模拟事务回滚的撤销日志(Undo Log)
利用pg_visibility扩展和旧版本清理策略,手动实现类似Oracle的UNDO表空间效果,用于审计和时间点查询。
外部数据封装器(FDW)的查询下推优化:让远程数据像本地一样快
超越基本FDW使用,深入分析如何通过定制user mapping和foreign table选项,强制where条件、聚合函数、排序等操作下推到远程数据库执行。
动态分区管理:用事件触发器自动创建时间分区
实现当插入数据的时间超过现有分区范围时,自动创建新分区,无需手动干预,解决分区维护的运维痛点。
构建企业级备份工具:基于WAL归档的增量恢复与验证
超越pg_basebackup,编写一个自定义备份脚本,支持增量备份、压缩、加密,并自动校验备份一致性。
行级安全策略的继承与多层组织架构权限控制
设计一套支持多级部门的数据权限模型,利用RLS策略的继承特性和current_setting实现动态上下文权限。
自定义聚合函数:实现滑动窗口的加权中位数
编写一个支持窗口子句的聚合函数,用于金融时间序列数据的滑动加权中位数计算,超越内置median实现。
透明数据加密(TDE)实现:在存储层用pgcrypto自动加解密
通过触发器+视图模拟Oracle TDE,对敏感列数据自动加密存储,解密显示,且对查询无感。
用递归CTE模拟Cypher图查询语言:实现最短路径与模式匹配
不依赖扩展,纯SQL实现类似Neo4j的图遍历能力,支持节点标签、关系方向过滤和路径聚合。