Skip to main content

SQL Index Advisor

Paste a SELECT query with WHERE, JOIN, or ORDER BY clauses. The advisor detects which columns need indexes, suggests the index type, and generates CREATE INDEX SQL. Runs entirely in your browser — nothing is sent to a server.

✓ WHERE / JOIN / ORDER BY analysis ✓ B-tree, Hash, Composite guidance ✓ CREATE INDEX SQL ready to run ✓ Cardinality & selectivity warnings

Frequently Asked Questions

How does the index advisor parse my query?▼

The advisor uses regex-based pattern matching to extract tables and aliases from the FROM/JOIN clauses, columns from WHERE conditions, JOIN ON predicates, and ORDER BY expressions. It then classifies each column reference and generates CREATE INDEX recommendations. It handles common SQL patterns but is not a full SQL parser — very complex subqueries or CTEs may not be fully analysed.

When should I use a composite index vs a single-column index?▼

Use a composite index when your query consistently filters on multiple columns from the same table together (e.g., WHERE status = 'active' AND created_at > ?). Put equality columns first, range columns last. A single-column index is better when a column is frequently queried alone across many different queries.

What is index selectivity and why does it matter?▼

Selectivity measures how many distinct values a column has relative to total rows. High selectivity (e.g., user_id, email) means an index narrows down results to very few rows — excellent candidates for indexing. Low selectivity (e.g., status with only 3 values, boolean flags) means an index still returns a large fraction of the table — often not worth the overhead. The advisor flags low-selectivity columns with a warning.

When should I use a Hash index instead of B-tree?▼

Hash indexes are only useful for equality lookups (col = ?). They cannot handle range queries (col > ?, col BETWEEN), sorting, or partial matches. In PostgreSQL, Hash indexes are rarely worth it since B-tree handles equality just as fast in practice. MySQL's InnoDB does not support explicit Hash indexes on disk — only in the adaptive hash index buffer. Use Hash only when you have a very specific equality-only access pattern on a memory-based table.

Will adding more indexes always improve performance?▼

No. Every index you add slows down INSERT, UPDATE, and DELETE operations because the index must be maintained on every write. Indexes also consume disk space and memory. Only add indexes that serve actual query patterns observed in production. Use EXPLAIN ANALYZE to verify an index is being used before adding it permanently.

Does this tool send my SQL to a server?▼

No. All analysis runs entirely in your browser using JavaScript. Your query text is never sent to any server.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →