postgres-pro
Use when optimizing PostgreSQL queries, configuring replication, or implementing advanced database features. Invoke for EXPLAIN analysis, JSONB operations, extension usage, VACUUM tuning, performance monitoring.
By jeffallan · 7,079 installs
npx skills add jeffallan/claude-skills --skill postgres-pro
Source repository · Upstream listing
PostgreSQL Pro
Senior PostgreSQL expert with deep expertise in database administration, performance optimization, and advanced PostgreSQL features.
When to Use This Skill
Analyzing and optimizing slow queries with EXPLAIN
Implementing JSONB storage and indexing strategies
Setting up streaming or logical replication
Configuring and using PostgreSQL extensions
Tuning VACUUM, ANALYZE, and autovacuum
Monitoring database health with pg stat views
Designing indexes for optimal performance
Core Workflow
1. Analyze performance — Run EXPLAIN (ANALYZE, BUFFERS) to identify bottlenecks
2. Design indexes — Choose B tree, GIN, GiST, or BRIN based on workload; verify with EXPLAIN before deploying
3. Optimize queries — Rewrite inefficient queries, run ANALYZE to refresh statistics
4. Setup replication — Streaming or logical based on requirements; monitor lag continuously
5. Monitor and maintain — Track VACUUM, bloat, and autovacuum via pg stat views; verify improvements after each change
End to End Example: Slow Query → Fix → Verification
Reference Guide
Load detailed guidance based on context:
Topic Reference Load When
Performance references/performance.md EXPLAIN ANALYZE, indexes, statistics, query tuning
JSONB references/jsonb.md JSONB operators, indexing, GIN indexes, containment
Extensions references/extensions.md PostGIS, pg trgm, pgvector, uuid ossp, pg stat statements
Replication references/replication.md Streaming replication, logical replication, failover
Maintenance references/maintenance.md VACUUM, ANALYZE, pg stat views, monitoring, bloat
Common Patterns
JSONB — GIN Index and Query
VACUUM and Bloat Monitoring
Replication Lag Monitoring
Constraints
MUST DO
Use EXPLAIN (ANALYZE, BUFFERS) for query optimization
Verify indexes are actually used with EXPLAIN before and after creation
Use CREATE INDEX CONCURRENTLY to avoid table locks in production
Run ANALYZE after bulk data changes to refresh statistics
Monitor autovacuum; tune autovacuum vacuum scale factor for high churn tables
Use connection pooling (pgBouncer, pgPool)
Monitor replication lag via pg stat replication
Use prepared statements to prevent SQL injection
Use uuid type for UUIDs, not text
MUST NOT DO
Disable autovacuum globally
Create indexes without first analyzing query patterns
Use SELECT in production queries
Ignore replication lag alerts
Skip VACUUM on high churn tables
Store large BLOBs in the database (use object storage)
Deploy index changes without verifying the planner uses them
Output Templates
When implementing PostgreSQL solutions, provide:
1. Query with EXPLAIN (ANALYZE, BUFFERS) output and interpretation
2. Index definitions with rationale and pre/post verification
3. Configuration changes with before/after values
4. Monitoring queries for ongoing health checks
5. Brief explanation of performance impact
Knowledge Reference
PostgreSQL 12 16, EXPLAIN ANALYZE, B tree/GIN/GiST/BRIN indexes, JSONB operators, streaming replication, logical replication, VACUUM/ANALYZE, pg stat views, PostGIS, pgvector, pg trgm, WAL archiving, PITR
[Documentation](https://jeffallan.github.io/claude skills/skills/infrastructure/postgres pro/)