Get PostgreSQL best practices for optimization, schema design, indexing, and security.
The material indicates this is essentially an open-source prompt/reference-only skill with no required secrets, no declared remote endpoints, and no stated local execution capability, so overall risk is low. The main caveat is the missing license declaration and unknown maintenance status, but based on the provided facts this does not rise to high risk.
The material explicitly states that no keys or environment variables are required, and the README shows no token requests, auth setup, or credential handling flow, so credential exposure and abuse risk appears low.
No remote endpoints are declared, and the system flags it as prompt-only; based on the material it behaves like local reference/prompt content with no evidence of sending user data to external services.
The material only describes PostgreSQL best practices and SQL examples, with no install scripts, executable components, or indication of launching local processes; on the available evidence it does not have code execution capability.
No filesystem, database connection, system resource, or user data read/write permissions are declared; as a reference-style skill, the material does not show actual access to user data.
The source is an open GitHub repository with very high community adoption, both of which are strong risk-reducing signals; however, the license is undeclared, maintenance status is unknown, and the provided repository name does not fully match the skill name, so supply-chain transparency still warrants manual verification.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "postgres-patterns" skill from askskill: 1. Download https://raw.githubusercontent.com/affaan-m/ECC/main/skills/postgres-patterns/SKILL.md 2. Save it as ~/.claude/skills/postgres-patterns/SKILL.md 3. Reload skills and tell me it's ready
Help me optimize this slow PostgreSQL query. Here is the schema... Here is the SQL... Here is the current execution plan... Please analyze the bottlenecks and suggest actionable improvements, including indexes, SQL rewrites, and whether partitioning is needed.
A diagnosis of the slow query with bottleneck analysis, recommended indexes, rewritten SQL, and reasons for each optimization.
I am building a SaaS app and need a PostgreSQL schema for users, teams, subscriptions, and permissions. Based on best practices, propose the tables, primary and foreign key relationships, constraints, and index suggestions, and explain how to balance scalability and query performance.
A clear PostgreSQL schema design plan with table definitions, relationship design, constraint rules, and index recommendations.
Please review the security design of this PostgreSQL database. We have multiple application roles and read/write permission requirements. Provide a best-practice security plan covering role separation, least privilege, RLS policies, sensitive data protection, and a checklist of common risks.
A database security hardening plan with role and permission design, sample RLS policies, identified risks, and a remediation checklist.
Quick reference for PostgreSQL best practices. For detailed guidance, use the database-reviewer agent.
| Query Pattern | Index Type | Example |
|---|---|---|
WHERE col = value | B-tree (default) | CREATE INDEX idx ON t (col) |
WHERE col > value | B-tree | CREATE INDEX idx ON t (col) |
WHERE a = x AND b > y | Composite | CREATE INDEX idx ON t (a, b) |
WHERE jsonb @> '{}' | GIN | CREATE INDEX idx ON t USING gin (col) |
WHERE tsv @@ query | GIN | CREATE INDEX idx ON t USING gin (col) |
| Time-series ranges | BRIN | CREATE INDEX idx ON t USING brin (col) |
| Use Case | Correct Type | Avoid |
|---|---|---|
| IDs | bigint | int, random UUID |
| Strings | text | varchar(255) |
| Timestamps | timestamptz | timestamp |
| Money | numeric(10,2) | float |
| Flags | boolean | varchar, int |
Composite Index Order:
-- Equality columns first, then range columns
CREATE INDEX idx ON orders (status, created_at);
-- Works for: WHERE status = 'pending' AND created_at > '2024-01-01'
Covering Index:
CREATE INDEX idx ON users (email) INCLUDE (name, created_at);
-- Avoids table lookup for SELECT email, name, created_at
Partial Index:
CREATE INDEX idx ON users (email) WHERE deleted_at IS NULL;
-- Smaller index, only includes active users
RLS Policy (Optimized):
CREATE POLICY policy ON orders
USING ((SELECT auth.uid()) = user_id); -- Wrap in SELECT!
UPSERT:
INSERT INTO settings (user_id, key, value)
VALUES (123, 'theme', 'dark')
ON CONFLICT (user_id, key)
DO UPDATE SET value = EXCLUDED.value;
Cursor Pagination:
SELECT * FROM products WHERE id > $last_id ORDER BY id LIMIT 20;
-- O(1) vs OFFSET which is O(n)
Queue Processing:
UPDATE jobs SET status = 'processing'
WHERE id = (
SELECT id FROM jobs WHERE status = 'pending'
ORDER BY created_at LIMIT 1
FOR UPDATE SKIP LOCKED
) RETURNING *;
-- Find unindexed foreign keys
SELECT conrelid::regclass, a.attname
FROM pg_constraint c
JOIN pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ANY(c.conkey)
WHERE c.contype = 'f'
AND NOT EXISTS (
SELECT 1 FROM pg_index i
WHERE i.indrelid = c.conrelid AND a.attnum = ANY(i.indkey)
);
-- Find slow queries
SELECT query, mean_exec_time, calls
FROM pg_stat_statements
WHERE mean_exec_time > 100
ORDER BY mean_exec_time DESC;
-- Check table bloat
SELECT relname, n_dead_tup, last_vacuum
FROM pg_stat_user_tables
WHERE n_dead_tup > 1000
ORDER BY n_dead_tup DESC;
-- Connection limits (adjust for RAM)
ALTER SYSTEM SET max_connections = 100;
ALTER SYSTEM SET work_mem = '8MB';
-- Timeouts
ALTER SYSTEM SET idle_in_transaction_session_timeout = '30s';
ALTER SYSTEM SET statement_timeout = '30s';
-- Monitoring
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
-- Security defaults
REVOKE ALL ON SCHEMA public FROM public;
SELECT pg_reload_conf();
database-reviewer - Full database review workflowclickhouse-io - ClickHouse analytics patternsbackend-patterns - API and backend patternsBased on Supabase Agent Skills (credit: Supabase team) (MIT License)
Handle returns, refunds, fraud checks, and warranty claim decisions efficiently.
Use Bun for runtime, bundling, testing, packages, and Node migration decisions.
Use the correct Ethereum Keccak-256 hashing in Node.js and TypeScript.
Apply Nuxt 4 patterns for SSR safety, performance, and data fetching.
Generate images, videos, and audio with one unified AI media workflow.
Design Quarkus 3 backend patterns for messaging, APIs, data, and async workflows.
Securely connect AI to PostgreSQL for read-only queries, schema discovery, and performance analysis.
Query and explore PostgreSQL databases with SQL, tables, and schema inspection.
Connect to PostgreSQL across projects to inspect schemas, run queries, and analyze performance.
Query PostgreSQL databases safely in natural language with read-only access.
Get production-ready MySQL and MariaDB schema, query, and operations patterns.
Safely query, modify, and manage PostgreSQL databases with transaction and schema tools.