SQL Optimization — Comprehensive Reference
This skill provides actionable checklists, patterns, and templates for transactional (OLTP) SQL optimization: measurement-first triage, EXPLAIN/plan interpretation, balanced indexing (avoiding over-indexing), performance monitoring, schema evolution, migrations, backup/recovery, high availability, and security.
Supported Platforms: PostgreSQL, MySQL, SQL Server, Oracle, SQLite
For OLAP/Analytics: See data-lake-platform (ClickHouse, DuckDB, Doris, StarRocks)
Quick Reference
| Task |
Tool/Framework |
Command |
When to Use |
| Query Performance Analysis |
EXPLAIN ANALYZE |
EXPLAIN (ANALYZE, BUFFERS) SELECT ... (PG) / EXPLAIN ANALYZE SELECT ... (MySQL) |
Diagnose slow queries, identify missing indexes |
| Find Slow Queries |
pg_stat_statements / slow query log |
SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10; |
Identify performance bottlenecks in production |
| Index Analysis |
pg_stat_user_indexes / SHOW INDEX |
SELECT * FROM pg_stat_user_indexes WHERE idx_scan = 0; |
Find unused indexes, validate index coverage |
| Schema Migration |
Flyway / Liquibase |
flyway migrate / liquibase update |
Version-controlled database changes |
| Backup & Recovery |
pg_dump / mysqldump |
pg_dump -Fc dbname > backup.dump |
Point-in-time recovery, disaster recovery |
| Replication Setup |
Streaming / GTID |
Configure postgresql.conf / my.cnf |
High availability, read scaling |
| Safe Tuning Loop |
Measure -> Explain -> Change -> Verify |
Use tuning worksheet template |
Reduce latency/cost without regressions |
Decision Tree: Choosing the Right Approach
Query performance issue?
├─ Identify slow queries first?
│ ├─ PostgreSQL -> pg_stat_statements (top queries by total_exec_time)
│ └─ MySQL -> Performance Schema / slow query log
│
├─ Analyze execution plan?
│ ├─ PostgreSQL -> EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
│ ├─ MySQL -> EXPLAIN FORMAT=JSON or EXPLAIN ANALYZE
│ └─ SQL Server -> SET STATISTICS IO ON; SET STATISTICS TIME ON;
│
├─ Need indexing strategy?
│ ├─ PostgreSQL -> B-tree (default), GIN (JSONB), GiST (spatial), partial indexes
│ ├─ MySQL -> BTREE (default), FULLTEXT (text search), SPATIAL
│ └─ Check: Table >10k rows AND selectivity <10% AND 10x+ speedup verified
│
├─ Schema changes needed?
│ ├─ New database -> template-schema-design.md
│ ├─ Modify schema -> template-migration.md (Flyway/Liquibase)
│ └─ Large tables (MySQL) -> gh-ost / pt-online-schema-change (avoid locks)
│
├─ High availability setup?
│ ├─ PostgreSQL -> Streaming replication (template-replication-ha.md)
│ └─ MySQL -> GTID-based replication (template-replication-ha.md)
│
├─ Backup/disaster recovery?
│ └─ template-backup-restore.md (pg_dump, mysqldump, PITR)
│
└─ Analytics on large datasets (OLAP)?
└─ See data-lake-platform (ClickHouse, DuckDB, Doris, StarRocks)
When to Use This Skill
Codex should invoke this skill when users ask for:
Query Optimization (Modern Approaches)
- SQL query performance review and tuning
- EXPLAIN/plan interpretation with optimization suggestions
- Index creation strategies with balanced approach (avoiding over-indexing)
- Troubleshooting slow queries using pg_stat_statements or Performance Schema
- Identifying and remediating SQL anti-patterns with operational fixes
- Query rewrite suggestions or migration from slow to fast patterns
- Statistics maintenance and auto-analyze configuration
Database Operations
- Schema design with normalization and performance trade-offs
- Database migrations with version control (Liquibase, Flyway)
- Backup and recovery strategies (point-in-time recovery, automated testing)
- High availability and replication setup (streaming, GTID-based)
- Database security auditing (access controls, encryption, SQL injection prevention)
- Lock analysis and deadlock troubleshooting
- Connection pooling (pgBouncer, Pgpool-II, ProxySQL)
Performance Tuning (Modern Standards)
- Memory configuration (work_mem, shared_buffers, effective_cache_size)
- Automated monitoring with pg_stat_statements and query pattern analysis
- Index health monitoring (unused index detection, index bloat analysis)
- Vacuum strategy and autovacuum tuning (PostgreSQL)
- InnoDB buffer pool optimization (MySQL)
- Partition pruning improvements (PostgreSQL 18+)
Resources (Best Practices Guides)
Find detailed operational patterns and quick references in:
- SQL Best Practices: references/sql-best-practices.md
- Query Tuning Patterns: references/query-tuning-patterns.md
- Indexing Strategies: references/index-patterns.md
- EXPLAIN/Analysis: references/explain-analysis.md
- SQL Anti-Patterns: references/sql-antipatterns.md
- External Sources: data/sources.json — vendor docs and reference links
- Operational Standards: references/operational-patterns.md — Deep operational checklists, database-specific guidance, and template selection trees
- Connection Pooling: references/connection-pooling-patterns.md — PgBouncer, RDS Proxy, pool sizing, connection leak troubleshooting
- Partition Strategies: references/partition-strategies.md — Range/list/hash partitioning, pruning, maintenance, migration patterns
- Monitoring & Alerting: references/monitoring-alerting-patterns.md — pg_stat_statements dashboards, alert thresholds, slow query pipelines
Each file includes:
- Copy-paste ready checklists (e.g., "query review", "index design", "explain review")
- Anti-patterns with operational fixes and alternatives
- Query rewrite and indexing strategies with examples
- Troubleshooting guides (step-by-step)
Templates (Copy-Paste Ready)
Templates are organized by database technology for precision and clarity:
Cross-Platform Templates (All Databases)
- assets/cross-platform/template-query-tuning.md - Universal query optimization
- assets/cross-platform/template-explain-analysis.md - Execution plan analysis
- assets/cross-platform/template-performance-tuning-worksheet.md - NEW 4-step tuning workflow (Measure -> Explain -> Change -> Verify)
- assets/cross-platform/template-index.md - Index design patterns
- assets/cross-platform/template-slow-query.md - Slow query triage
- assets/cross-platform/template-schema-design.md - Schema modeling
- assets/cross-platform/template-migration.md - Database migrations
- assets/cross-platform/template-backup-restore.md - Backup/DR planning
- assets/cross-platform/template-security-audit.md - Security review
- assets/cross-platform/template-diagnostics.md - Performance diagnostics
- assets/cross-platform/template-lock-analysis.md - Lock troubleshooting
PostgreSQL Templates
- assets/postgres/template-pg-explain.md - PostgreSQL EXPLAIN analysis
- assets/postgres/template-pg-index.md - PostgreSQL indexing (B-tree, GIN, GiST)
- assets/postgres/template-replication-ha.md - Streaming replication & HA
MySQL Templates
- assets/mysql/template-mysql-explain.md - MySQL EXPLAIN analysis
- assets/mysql/template-mysql-index.md - MySQL/InnoDB indexing
- assets/mysql/template-replication-ha.md - MySQL replication & HA
Microsoft SQL Server Templates
- assets/mssql/template-mssql-explain.md - SQL Server EXPLAIN/SHOWPLAN analysis
- assets/mssql/template-mssql-index.md - SQL Server indexing and tuning
Oracle Templates
- assets/oracle/template-oracle-explain.md - Oracle EXPLAIN plan review and tuning
SQLite Templates
- assets/sqlite/template-sqlite-optimization.md - SQLite optimization and pragma guidance
Related Skills
Infrastructure & Operations:
Application Integration:
Quality & Security:
Data Engineering:
Navigation
Resources
- references/explain-analysis.md
- references/query-tuning-patterns.md
- references/operational-patterns.md
- references/sql-antipatterns.md
- references/index-patterns.md
- references/sql-best-practices.md
- references/connection-pooling-patterns.md
- references/partition-strategies.md
- references/monitoring-alerting-patterns.md
Templates
- assets/cross-platform/template-slow-query.md
- assets/cross-platform/template-backup-restore.md
- assets/cross-platform/template-schema-design.md
- assets/cross-platform/template-explain-analysis.md
- assets/cross-platform/template-performance-tuning-worksheet.md
- assets/cross-platform/template-security-audit.md
- assets/cross-platform/template-diagnostics.md
- assets/cross-platform/template-index.md
- assets/cross-platform/template-migration.md
- assets/cross-platform/template-lock-analysis.md
- assets/cross-platform/template-query-tuning.md
- assets/oracle/template-oracle-explain.md
- assets/sqlite/template-sqlite-optimization.md
- assets/postgres/template-pg-index.md
- assets/postgres/template-replication-ha.md
- assets/postgres/template-pg-explain.md
- assets/mysql/template-mysql-explain.md
- assets/mysql/template-mysql-index.md
- assets/mysql/template-replication-ha.md
- assets/mssql/template-mssql-index.md
- assets/mssql/template-mssql-explain.md
Data
- data/sources.json — Curated external references
Operational Deep Dives
See references/operational-patterns.md for:
- End-to-end optimization checklists and anti-pattern fixes
- Database-specific quick references (PostgreSQL, MySQL, SQL Server, Oracle, SQLite)
- Slow query troubleshooting workflow and reliability drills
- Template selection decision tree and platform migration notes
Do / Avoid
GOOD: Do
- Measure baseline before any optimization
- Change one variable at a time
- Verify results match after query changes
- Update statistics before concluding "needs index"
- Test with production-like data volumes
- Document all optimization decisions
- Include performance tests in CI/CD
BAD: Avoid
- Adding indexes without checking if they'll be used
- Using SELECT * in production queries
- Optimizing for test data (use representative volumes)
- Ignoring write performance impact of indexes
- Skipping EXPLAIN analysis before changes
- Multiple simultaneous changes (can't attribute improvement)
- N+1 query patterns in application code
Anti-Patterns Quick Reference
| Anti-Pattern |
Problem |
Fix |
| **SELECT *** |
Reads unnecessary columns |
Explicit column list |
| N+1 queries |
Multiplied round trips |
JOIN or batch fetch |
| Missing WHERE |
Full table scan |
Add predicates |
| Function on indexed column |
Can't use index |
Move function to RHS |
| Implicit type conversion |
Index bypass |
Match types explicitly |
| LIKE '%prefix' |
Leading wildcard = scan |
Full-text search |
| Unbounded result set |
Memory explosion |
Add LIMIT/pagination |
| OR conditions |
Index may not be used |
UNION or rewrite |
See references/sql-antipatterns.md for detailed fixes.
OLTP vs OLAP Decision Tree
Is your query for...?
├─ Point lookups (by ID/key)?
│ └─ OLTP database (this skill)
│ - Ensure proper indexes
│ - Use connection pooling
│ - Optimize for low latency
│
├─ Aggregations over recent data (dashboard)?
│ └─ OLTP database (this skill)
│ - Consider materialized views
│ - Index common filter columns
│ - Watch for lock contention
│
├─ Full table scans or historical analysis?
│ └─ OLAP database (data-lake-platform)
│ - ClickHouse, DuckDB, Doris
│ - Columnar storage
│ - Partitioning by date
│
└─ Mixed workload (both)?
└─ Separate OLTP and OLAP
- OLTP for transactions
- Replicate to OLAP for analytics
- Avoid running analytics on primary
Optional: AI/Automation
Note: AI tools assist but require human validation of correctness.
- EXPLAIN summarization — Identify bottlenecks from complex plans
- Query rewrite suggestions — Must verify result equivalence
- Index recommendations — Check selectivity and write impact first
Bounded Claims
- AI cannot determine correct query results
- Automated index suggestions may miss workload context
- Human review required for production changes
Analytical Databases (OLAP)
For OLAP databases and data lake infrastructure, see data-lake-platform:
- Query engines: ClickHouse, DuckDB, Apache Doris, StarRocks
- Table formats: Apache Iceberg, Delta Lake, Apache Hudi
- Transformation: SQLMesh, dbt (staging/marts layers)
- Ingestion: dlt, Airbyte (connectors)
- Streaming: Apache Kafka patterns
This skill focuses on transactional database optimization (PostgreSQL, MySQL, SQL Server, Oracle, SQLite). Use data-lake-platform for analytical workloads.
Related Skills
This skill focuses on query optimization within a single database. For related workflows:
SQL Transformation & Analytics Engineering:
-> ai-ml-data-science skill
- SQLMesh templates for building staging/intermediate/marts layers
- Incremental models (FULL, INCREMENTAL_BY_TIME_RANGE, INCREMENTAL_BY_UNIQUE_KEY)
- DAG management and model dependencies
- Unit tests and audits for SQL transformations
Data Ingestion (Loading into Warehouses):
-> ai-mlops skill
- dlt templates for extracting from REST APIs, databases
- Loading to Snowflake, BigQuery, Redshift, Postgres, DuckDB
- Incremental loading patterns (timestamp, ID-based, merge/upsert)
- Database replication (Postgres, MySQL, MongoDB -> warehouse)
Data Lake Infrastructure:
-> data-lake-platform skill
- ClickHouse, DuckDB, Doris, StarRocks query engines
- Iceberg, Delta Lake, Hudi table formats
- Kafka streaming, Dagster/Airflow orchestration
Use Case Decision:
- Query is slow in production -> Use this skill (data-sql-optimization)
- Building feature pipelines in SQL -> Use ai-ml-data-science (SQLMesh)
- Loading data from APIs/DBs to warehouse -> Use ai-mlops (dlt)
- Analytics on large datasets (OLAP) -> Use data-lake-platform
External Resources
See data/sources.json for 62+ curated resources including:
Core Documentation:
- RDBMS Documentation: PostgreSQL, MySQL, SQL Server, Oracle, SQLite, DuckDB official docs
- Query Optimization: Use The Index, Luke, SQL Performance Explained, vendor optimization guides
- Schema Design: Database Refactoring (Fowler), normalization guides, data type selection
Modern Optimization (Current):
- PostgreSQL: official release notes and "current" docs for planner/optimizer changes
- MySQL: official reference manual sections for EXPLAIN, optimizer, and Performance Schema
- SQL Server / Oracle: official docs for execution plans, indexing, and concurrency controls
Operations & Infrastructure:
- HA & Replication: Streaming replication, GTID-based replication, failover automation
- Migrations: Liquibase, Flyway version control and deployment patterns
- Backup/Recovery: pgBackRest, Percona XtraBackup, point-in-time recovery
- Monitoring: pg_stat_statements, Performance Schema, EXPLAIN visualizers (Dalibo, depesz)
- Security: OWASP SQL Injection Prevention, Postgres hardening, encryption standards
- Analytical Databases: DuckDB extensions, Parquet specification, columnar storage patterns
Use references/operational-patterns.md and the templates directory for detailed workflows, migration notes, and ready-to-run commands.
Fact-Checking
- Use web search/web fetch to verify current external facts, versions, pricing, deadlines, regulations, or platform behavior before final answers.
- Prefer primary sources; report source links and dates for volatile information.
- If web access is unavailable, state the limitation and mark guidance as unverified.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: vasilyu1983-ai-agents-public-data-sql-optimization3description: SQL Optimization — Comprehensive Reference4---56# SQL Optimization — Comprehensive Reference78This skill provides actionable checklists, patterns, and templates for **transactional (OLTP) SQL optimization**: measurement-first triage, EXPLAIN/plan interpretation, balanced indexing (avoiding over-indexing), performance monitoring, schema evolution, migrations, backup/recovery, high availability, and security.910**Supported Platforms:** PostgreSQL, MySQL, SQL Server, Oracle, SQLite1112**For OLAP/Analytics:** See [data-lake-platform](../data-lake-platform/SKILL.md) (ClickHouse, DuckDB, Doris, StarRocks)1314---1516## Quick Reference1718| Task | Tool/Framework | Command | When to Use |19|------|----------------|---------|-------------|20| Query Performance Analysis | EXPLAIN ANALYZE | `EXPLAIN (ANALYZE, BUFFERS) SELECT ...` (PG) / `EXPLAIN ANALYZE SELECT ...` (MySQL) | Diagnose slow queries, identify missing indexes |21| Find Slow Queries | pg_stat_statements / slow query log | `SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10;` | Identify performance bottlenecks in production |22| Index Analysis | pg_stat_user_indexes / SHOW INDEX | `SELECT * FROM pg_stat_user_indexes WHERE idx_scan = 0;` | Find unused indexes, validate index coverage |23| Schema Migration | Flyway / Liquibase | `flyway migrate` / `liquibase update` | Version-controlled database changes |24| Backup & Recovery | pg_dump / mysqldump | `pg_dump -Fc dbname > backup.dump` | Point-in-time recovery, disaster recovery |25| Replication Setup | Streaming / GTID | Configure postgresql.conf / my.cnf | High availability, read scaling |26| Safe Tuning Loop | Measure -> Explain -> Change -> Verify | Use tuning worksheet template | Reduce latency/cost without regressions |2728---2930## Decision Tree: Choosing the Right Approach3132```text33Query performance issue?34 ├─ Identify slow queries first?35 │ ├─ PostgreSQL -> pg_stat_statements (top queries by total_exec_time)36 │ └─ MySQL -> Performance Schema / slow query log37 │38 ├─ Analyze execution plan?39 │ ├─ PostgreSQL -> EXPLAIN (ANALYZE, BUFFERS, VERBOSE)40 │ ├─ MySQL -> EXPLAIN FORMAT=JSON or EXPLAIN ANALYZE41 │ └─ SQL Server -> SET STATISTICS IO ON; SET STATISTICS TIME ON;42 │43 ├─ Need indexing strategy?44 │ ├─ PostgreSQL -> B-tree (default), GIN (JSONB), GiST (spatial), partial indexes45 │ ├─ MySQL -> BTREE (default), FULLTEXT (text search), SPATIAL46 │ └─ Check: Table >10k rows AND selectivity <10% AND 10x+ speedup verified47 │48 ├─ Schema changes needed?49 │ ├─ New database -> template-schema-design.md50 │ ├─ Modify schema -> template-migration.md (Flyway/Liquibase)51 │ └─ Large tables (MySQL) -> gh-ost / pt-online-schema-change (avoid locks)52 │53 ├─ High availability setup?54 │ ├─ PostgreSQL -> Streaming replication (template-replication-ha.md)55 │ └─ MySQL -> GTID-based replication (template-replication-ha.md)56 │57 ├─ Backup/disaster recovery?58 │ └─ template-backup-restore.md (pg_dump, mysqldump, PITR)59 │60 └─ Analytics on large datasets (OLAP)?61 └─ See data-lake-platform (ClickHouse, DuckDB, Doris, StarRocks)62```6364---6566## When to Use This Skill6768Codex should invoke this skill when users ask for:6970### Query Optimization (Modern Approaches)71- SQL query performance review and tuning72- EXPLAIN/plan interpretation with optimization suggestions73- Index creation strategies with balanced approach (avoiding over-indexing)74- Troubleshooting slow queries using pg_stat_statements or Performance Schema75- Identifying and remediating SQL anti-patterns with operational fixes76- Query rewrite suggestions or migration from slow to fast patterns77- Statistics maintenance and auto-analyze configuration7879### Database Operations80- Schema design with normalization and performance trade-offs81- Database migrations with version control (Liquibase, Flyway)82- Backup and recovery strategies (point-in-time recovery, automated testing)83- High availability and replication setup (streaming, GTID-based)84- Database security auditing (access controls, encryption, SQL injection prevention)85- Lock analysis and deadlock troubleshooting86- Connection pooling (pgBouncer, Pgpool-II, ProxySQL)8788### Performance Tuning (Modern Standards)89- Memory configuration (work_mem, shared_buffers, effective_cache_size)90- Automated monitoring with pg_stat_statements and query pattern analysis91- Index health monitoring (unused index detection, index bloat analysis)92- Vacuum strategy and autovacuum tuning (PostgreSQL)93- InnoDB buffer pool optimization (MySQL)94- Partition pruning improvements (PostgreSQL 18+)9596---9798## Resources (Best Practices Guides)99100Find detailed operational patterns and quick references in:101102- **SQL Best Practices**: [references/sql-best-practices.md](references/sql-best-practices.md)103- **Query Tuning Patterns**: [references/query-tuning-patterns.md](references/query-tuning-patterns.md)104- **Indexing Strategies**: [references/index-patterns.md](references/index-patterns.md)105- **EXPLAIN/Analysis**: [references/explain-analysis.md](references/explain-analysis.md)106- **SQL Anti-Patterns**: [references/sql-antipatterns.md](references/sql-antipatterns.md)107- **External Sources**: [data/sources.json](data/sources.json) — vendor docs and reference links108- **Operational Standards**: [references/operational-patterns.md](references/operational-patterns.md) — Deep operational checklists, database-specific guidance, and template selection trees109- **Connection Pooling**: [references/connection-pooling-patterns.md](references/connection-pooling-patterns.md) — PgBouncer, RDS Proxy, pool sizing, connection leak troubleshooting110- **Partition Strategies**: [references/partition-strategies.md](references/partition-strategies.md) — Range/list/hash partitioning, pruning, maintenance, migration patterns111- **Monitoring & Alerting**: [references/monitoring-alerting-patterns.md](references/monitoring-alerting-patterns.md) — pg_stat_statements dashboards, alert thresholds, slow query pipelines112113Each file includes:114- Copy-paste ready checklists (e.g., "query review", "index design", "explain review")115- Anti-patterns with operational fixes and alternatives116- Query rewrite and indexing strategies with examples117- Troubleshooting guides (step-by-step)118119---120121## Templates (Copy-Paste Ready)122123Templates are organized by database technology for precision and clarity:124125### Cross-Platform Templates (All Databases)126- [assets/cross-platform/template-query-tuning.md](assets/cross-platform/template-query-tuning.md) - Universal query optimization127- [assets/cross-platform/template-explain-analysis.md](assets/cross-platform/template-explain-analysis.md) - Execution plan analysis128- [assets/cross-platform/template-performance-tuning-worksheet.md](assets/cross-platform/template-performance-tuning-worksheet.md) - **NEW** 4-step tuning workflow (Measure -> Explain -> Change -> Verify)129- [assets/cross-platform/template-index.md](assets/cross-platform/template-index.md) - Index design patterns130- [assets/cross-platform/template-slow-query.md](assets/cross-platform/template-slow-query.md) - Slow query triage131- [assets/cross-platform/template-schema-design.md](assets/cross-platform/template-schema-design.md) - Schema modeling132- [assets/cross-platform/template-migration.md](assets/cross-platform/template-migration.md) - Database migrations133- [assets/cross-platform/template-backup-restore.md](assets/cross-platform/template-backup-restore.md) - Backup/DR planning134- [assets/cross-platform/template-security-audit.md](assets/cross-platform/template-security-audit.md) - Security review135- [assets/cross-platform/template-diagnostics.md](assets/cross-platform/template-diagnostics.md) - Performance diagnostics136- [assets/cross-platform/template-lock-analysis.md](assets/cross-platform/template-lock-analysis.md) - Lock troubleshooting137138### PostgreSQL Templates139- [assets/postgres/template-pg-explain.md](assets/postgres/template-pg-explain.md) - PostgreSQL EXPLAIN analysis140- [assets/postgres/template-pg-index.md](assets/postgres/template-pg-index.md) - PostgreSQL indexing (B-tree, GIN, GiST)141- [assets/postgres/template-replication-ha.md](assets/postgres/template-replication-ha.md) - Streaming replication & HA142143### MySQL Templates144- [assets/mysql/template-mysql-explain.md](assets/mysql/template-mysql-explain.md) - MySQL EXPLAIN analysis145- [assets/mysql/template-mysql-index.md](assets/mysql/template-mysql-index.md) - MySQL/InnoDB indexing146- [assets/mysql/template-replication-ha.md](assets/mysql/template-replication-ha.md) - MySQL replication & HA147148### Microsoft SQL Server Templates149- [assets/mssql/template-mssql-explain.md](assets/mssql/template-mssql-explain.md) - SQL Server EXPLAIN/SHOWPLAN analysis150- [assets/mssql/template-mssql-index.md](assets/mssql/template-mssql-index.md) - SQL Server indexing and tuning151152### Oracle Templates153- [assets/oracle/template-oracle-explain.md](assets/oracle/template-oracle-explain.md) - Oracle EXPLAIN plan review and tuning154155### SQLite Templates156- [assets/sqlite/template-sqlite-optimization.md](assets/sqlite/template-sqlite-optimization.md) - SQLite optimization and pragma guidance157158---159160## Related Skills161162**Infrastructure & Operations:**163- [../ops-devops-platform/SKILL.md](../ops-devops-platform/SKILL.md) — Infrastructure, backups, monitoring, and incident response164- [../qa-observability/SKILL.md](../qa-observability/SKILL.md) — Performance monitoring, profiling, and metrics165- [../qa-debugging/SKILL.md](../qa-debugging/SKILL.md) — Production debugging patterns166167**Application Integration:**168- [../software-backend/SKILL.md](../software-backend/SKILL.md) — API/database integration and application patterns169- [../software-architecture-design/SKILL.md](../software-architecture-design/SKILL.md) — System design and data architecture170- [../dev-api-design/SKILL.md](../dev-api-design/SKILL.md) — REST API and database interaction patterns171172**Quality & Security:**173- [../qa-resilience/SKILL.md](../qa-resilience/SKILL.md) — Resilience, circuit breakers, and failure handling174- [../software-security-appsec/SKILL.md](../software-security-appsec/SKILL.md) — Database security, auth, SQL injection prevention175- [../qa-testing-strategy/SKILL.md](../qa-testing-strategy/SKILL.md) — Database testing strategies176177**Data Engineering:**178- [../ai-ml-data-science/SKILL.md](../ai-ml-data-science/SKILL.md) — SQLMesh, dbt, data transformations179- [../ai-mlops/SKILL.md](../ai-mlops/SKILL.md) — Data pipelines, ETL, and warehouse loading (dlt)180- [../ai-ml-timeseries/SKILL.md](../ai-ml-timeseries/SKILL.md) — Time-series databases and forecasting181182---183184## Navigation185186**Resources**187- [references/explain-analysis.md](references/explain-analysis.md)188- [references/query-tuning-patterns.md](references/query-tuning-patterns.md)189- [references/operational-patterns.md](references/operational-patterns.md)190- [references/sql-antipatterns.md](references/sql-antipatterns.md)191- [references/index-patterns.md](references/index-patterns.md)192- [references/sql-best-practices.md](references/sql-best-practices.md)193- [references/connection-pooling-patterns.md](references/connection-pooling-patterns.md)194- [references/partition-strategies.md](references/partition-strategies.md)195- [references/monitoring-alerting-patterns.md](references/monitoring-alerting-patterns.md)196197**Templates**198- [assets/cross-platform/template-slow-query.md](assets/cross-platform/template-slow-query.md)199- [assets/cross-platform/template-backup-restore.md](assets/cross-platform/template-backup-restore.md)200- [assets/cross-platform/template-schema-design.md](assets/cross-platform/template-schema-design.md)201- [assets/cross-platform/template-explain-analysis.md](assets/cross-platform/template-explain-analysis.md)202- [assets/cross-platform/template-performance-tuning-worksheet.md](assets/cross-platform/template-performance-tuning-worksheet.md)203- [assets/cross-platform/template-security-audit.md](assets/cross-platform/template-security-audit.md)204- [assets/cross-platform/template-diagnostics.md](assets/cross-platform/template-diagnostics.md)205- [assets/cross-platform/template-index.md](assets/cross-platform/template-index.md)206- [assets/cross-platform/template-migration.md](assets/cross-platform/template-migration.md)207- [assets/cross-platform/template-lock-analysis.md](assets/cross-platform/template-lock-analysis.md)208- [assets/cross-platform/template-query-tuning.md](assets/cross-platform/template-query-tuning.md)209- [assets/oracle/template-oracle-explain.md](assets/oracle/template-oracle-explain.md)210- [assets/sqlite/template-sqlite-optimization.md](assets/sqlite/template-sqlite-optimization.md)211- [assets/postgres/template-pg-index.md](assets/postgres/template-pg-index.md)212- [assets/postgres/template-replication-ha.md](assets/postgres/template-replication-ha.md)213- [assets/postgres/template-pg-explain.md](assets/postgres/template-pg-explain.md)214- [assets/mysql/template-mysql-explain.md](assets/mysql/template-mysql-explain.md)215- [assets/mysql/template-mysql-index.md](assets/mysql/template-mysql-index.md)216- [assets/mysql/template-replication-ha.md](assets/mysql/template-replication-ha.md)217- [assets/mssql/template-mssql-index.md](assets/mssql/template-mssql-index.md)218- [assets/mssql/template-mssql-explain.md](assets/mssql/template-mssql-explain.md)219220**Data**221- [data/sources.json](data/sources.json) — Curated external references222223---224225## Operational Deep Dives226227See [references/operational-patterns.md](references/operational-patterns.md) for:228- End-to-end optimization checklists and anti-pattern fixes229- Database-specific quick references (PostgreSQL, MySQL, SQL Server, Oracle, SQLite)230- Slow query troubleshooting workflow and reliability drills231- Template selection decision tree and platform migration notes232233---234235## Do / Avoid236237### GOOD: Do238239- Measure baseline before any optimization240- Change one variable at a time241- Verify results match after query changes242- Update statistics before concluding "needs index"243- Test with production-like data volumes244- Document all optimization decisions245- Include performance tests in CI/CD246247### BAD: Avoid248249- Adding indexes without checking if they'll be used250- Using SELECT * in production queries251- Optimizing for test data (use representative volumes)252- Ignoring write performance impact of indexes253- Skipping EXPLAIN analysis before changes254- Multiple simultaneous changes (can't attribute improvement)255- N+1 query patterns in application code256257---258259## Anti-Patterns Quick Reference260261| Anti-Pattern | Problem | Fix |262|--------------|---------|-----|263| **SELECT *** | Reads unnecessary columns | Explicit column list |264| **N+1 queries** | Multiplied round trips | JOIN or batch fetch |265| **Missing WHERE** | Full table scan | Add predicates |266| **Function on indexed column** | Can't use index | Move function to RHS |267| **Implicit type conversion** | Index bypass | Match types explicitly |268| **LIKE '%prefix'** | Leading wildcard = scan | Full-text search |269| **Unbounded result set** | Memory explosion | Add LIMIT/pagination |270| **OR conditions** | Index may not be used | UNION or rewrite |271272See [references/sql-antipatterns.md](references/sql-antipatterns.md) for detailed fixes.273274---275276## OLTP vs OLAP Decision Tree277278```text279Is your query for...?280├─ Point lookups (by ID/key)?281│ └─ OLTP database (this skill)282│ - Ensure proper indexes283│ - Use connection pooling284│ - Optimize for low latency285│286├─ Aggregations over recent data (dashboard)?287│ └─ OLTP database (this skill)288│ - Consider materialized views289│ - Index common filter columns290│ - Watch for lock contention291│292├─ Full table scans or historical analysis?293│ └─ OLAP database (data-lake-platform)294│ - ClickHouse, DuckDB, Doris295│ - Columnar storage296│ - Partitioning by date297│298└─ Mixed workload (both)?299 └─ Separate OLTP and OLAP300 - OLTP for transactions301 - Replicate to OLAP for analytics302 - Avoid running analytics on primary303```304305---306307## Optional: AI/Automation308309> **Note**: AI tools assist but require human validation of correctness.310311- **EXPLAIN summarization** — Identify bottlenecks from complex plans312- **Query rewrite suggestions** — Must verify result equivalence313- **Index recommendations** — Check selectivity and write impact first314315### Bounded Claims316317- AI cannot determine correct query results318- Automated index suggestions may miss workload context319- Human review required for production changes320321---322323## Analytical Databases (OLAP)324325For OLAP databases and data lake infrastructure, see **[data-lake-platform](../data-lake-platform/SKILL.md)**:326327- **Query engines:** ClickHouse, DuckDB, Apache Doris, StarRocks328- **Table formats:** Apache Iceberg, Delta Lake, Apache Hudi329- **Transformation:** SQLMesh, dbt (staging/marts layers)330- **Ingestion:** dlt, Airbyte (connectors)331- **Streaming:** Apache Kafka patterns332333This skill focuses on **transactional database optimization** (PostgreSQL, MySQL, SQL Server, Oracle, SQLite). Use data-lake-platform for analytical workloads.334335---336337## Related Skills338339This skill focuses on **query optimization** within a single database. For related workflows:340341**SQL Transformation & Analytics Engineering:**342-> **[ai-ml-data-science](../ai-ml-data-science/SKILL.md)** skill343- SQLMesh templates for building staging/intermediate/marts layers344- Incremental models (FULL, INCREMENTAL_BY_TIME_RANGE, INCREMENTAL_BY_UNIQUE_KEY)345- DAG management and model dependencies346- Unit tests and audits for SQL transformations347348**Data Ingestion (Loading into Warehouses):**349-> **[ai-mlops](../ai-mlops/SKILL.md)** skill350- dlt templates for extracting from REST APIs, databases351- Loading to Snowflake, BigQuery, Redshift, Postgres, DuckDB352- Incremental loading patterns (timestamp, ID-based, merge/upsert)353- Database replication (Postgres, MySQL, MongoDB -> warehouse)354355**Data Lake Infrastructure:**356-> **[data-lake-platform](../data-lake-platform/SKILL.md)** skill357358- ClickHouse, DuckDB, Doris, StarRocks query engines359- Iceberg, Delta Lake, Hudi table formats360- Kafka streaming, Dagster/Airflow orchestration361362**Use Case Decision:**363364- **Query is slow in production** -> Use this skill (data-sql-optimization)365- **Building feature pipelines in SQL** -> Use ai-ml-data-science (SQLMesh)366- **Loading data from APIs/DBs to warehouse** -> Use ai-mlops (dlt)367- **Analytics on large datasets (OLAP)** -> Use data-lake-platform368369---370371## External Resources372373See [data/sources.json](data/sources.json) for 62+ curated resources including:374375**Core Documentation:**376- **RDBMS Documentation**: PostgreSQL, MySQL, SQL Server, Oracle, SQLite, DuckDB official docs377- **Query Optimization**: Use The Index, Luke, SQL Performance Explained, vendor optimization guides378- **Schema Design**: Database Refactoring (Fowler), normalization guides, data type selection379380**Modern Optimization (Current):**381- **PostgreSQL**: official release notes and "current" docs for planner/optimizer changes382- **MySQL**: official reference manual sections for EXPLAIN, optimizer, and Performance Schema383- **SQL Server / Oracle**: official docs for execution plans, indexing, and concurrency controls384385**Operations & Infrastructure:**386- **HA & Replication**: Streaming replication, GTID-based replication, failover automation387- **Migrations**: Liquibase, Flyway version control and deployment patterns388- **Backup/Recovery**: pgBackRest, Percona XtraBackup, point-in-time recovery389- **Monitoring**: pg_stat_statements, Performance Schema, EXPLAIN visualizers (Dalibo, depesz)390- **Security**: OWASP SQL Injection Prevention, Postgres hardening, encryption standards391- **Analytical Databases**: DuckDB extensions, Parquet specification, columnar storage patterns392393---394395Use [references/operational-patterns.md](references/operational-patterns.md) and the templates directory for detailed workflows, migration notes, and ready-to-run commands.396397## Fact-Checking398399- Use web search/web fetch to verify current external facts, versions, pricing, deadlines, regulations, or platform behavior before final answers.400- Prefer primary sources; report source links and dates for volatile information.401- If web access is unavailable, state the limitation and mark guidance as unverified.402403---404> Converted and distributed by [TomeVault](https://tomevault.io/claim/vasilyu1983) — claim your Tome and manage your conversions.405<!-- tomevault:4.0:skill_md:2026-04-11 -->