mirror of
https://github.com/duthaho/claudekit.git
synced 2026-07-20 14:31:00 +03:00
1.3 KiB
1.3 KiB
PostgreSQL
Description
PostgreSQL database patterns including queries, indexing, and optimization.
When to Use
- PostgreSQL database operations
- SQL query optimization
- Schema design
Core Patterns
Basic Queries
-- Select with filtering
SELECT id, name, email
FROM users
WHERE active = true
ORDER BY created_at DESC
LIMIT 20 OFFSET 0;
-- Join
SELECT u.*, COUNT(p.id) as post_count
FROM users u
LEFT JOIN posts p ON p.user_id = u.id
GROUP BY u.id;
Indexes
-- Single column index
CREATE INDEX idx_users_email ON users(email);
-- Composite index
CREATE INDEX idx_posts_user_date ON posts(user_id, created_at DESC);
-- Partial index
CREATE INDEX idx_active_users ON users(email) WHERE active = true;
Migrations
-- Add column with default
ALTER TABLE users ADD COLUMN role VARCHAR(50) DEFAULT 'user';
-- Add constraint
ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email);
Best Practices
- Use indexes for filtered/sorted columns
- Use EXPLAIN ANALYZE for slow queries
- Avoid SELECT * in production
- Use transactions for multiple operations
- Use connection pooling
Common Pitfalls
- N+1 queries: Use JOINs or batch loading
- Missing indexes: Add indexes for WHERE/ORDER BY
- Large transactions: Keep transactions short