sql-optimization-patterns

Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database schemas, or optimizing application performance.

By wshobson · 18,008 installs

npx skills add wshobson/agents --skill sql-optimization-patterns

Source repository · Upstream listing

SQL Optimization Patterns Transform slow database queries into lightning fast operations through systematic optimization, proper indexing, and query plan analysis. When to Use This Skill Debugging slow running queries Designing performant database schemas Optimizing application response times Reducing database load and costs Improving scalability for growing datasets Analyzing EXPLAIN query plans Implementing efficient indexes Resolving N+1 query problems Core Concepts 1. Query Execution Plans (EXPLAIN) Understanding EXPLAIN output is fundamental to optimization. PostgreSQL EXPLAIN: Key Metrics to Watch: Seq Scan : Full table scan (usually slow for large tables) Index Scan : Using index (good) Index Only Scan : Using index without touching table (best) Nested Loop : Join method (okay for small datasets) Hash Join : Join method (good for larger datasets) Merge Join : Join method (good for sorted data) Cost : Estimated query cost (lower is better) Rows : Estimated rows returned Actual Time : Real execution time 2. Index Strategies Indexes are the most powerful optimization tool. Index Types: B Tree : Default, good for equality and range queries Hash : Only for equality (=) comparisons GIN : Full text search, array queries, JSONB GiST : Geometric data, full text search BRIN : Block Range INdex for very large tables with correlation 3. Query Optimization Patterns Avoid SELECT \ : Use WHERE Clause Efficiently: Optimize JOINs: Detailed patterns and worked examples Detailed pattern documentation lives in references/details.md . Read that file when the navigation tier above is insufficient. Best Practices 1. Index Selectively : Too many indexes slow down writes 2. Monitor Query Performance : Use slow query logs 3. Keep Statistics Updated : Run ANALYZE regularly 4. Use Appropriate Data Types : Smaller types = better performance 5. Normalize Thoughtfully : Balance normalization vs performance 6. Cache Frequently Accessed Data : Use application level caching 7. Connection Pooling : Reuse database connections 8. Regular Maintenance : VACUUM, ANALYZE, rebuild indexes Common Pitfalls Over Indexing : Each index slows down INSERT/UPDATE/DELETE Unused Indexes : Waste space and slow writes Missing Indexes : Slow queries, full table scans Implicit Type Conversion : Prevents index usage OR Conditions : Can't use indexes efficiently LIKE with Leading Wildcard : LIKE '%abc' can't use index Function in WHERE : Prevents index usage unless functional index exists Monitoring Queries