Now in Beta — Join the waitlist

Master Database Internals.

Assess engineers beyond query correctness performance SQL. Practice SQL. Analyze performance. Hire with confidence.

Join the waitlist → Learn how it works
query.sql
plan.json
flame.svg
1 -- Problem: Top customers by order value (5M rows)
2 -- Baseline: 842ms | Target: <80ms | Your score: 94
3 
4 EXPLAIN ANALYZE
5 SELECT c.customer_id, c.name,
6        SUM(o.total_amount) AS total_spent,
7        COUNT(o.order_id) AS order_count
8 FROM customers c
9 JOIN orders o ON c.customer_id = o.customer_id
10WHERE o.created_at >= '2024-01-01'
11  AND o.status = 'completed'
12GROUP BY c.customer_id, c.name
13ORDER BY total_spent DESC
14LIMIT 100;
EXPLAIN ANALYZE
Flame Graphs
AI Coach
Real Execution Scoring
10M Row Datasets
Index Tuning
Query Optimization
PostgreSQL → MySQL
B2B Team Workspaces
EXPLAIN ANALYZE
Flame Graphs
AI Coach
Real Execution Scoring
10M Row Datasets
Index Tuning
Query Optimization
PostgreSQL → MySQL
B2B Team Workspaces
Why Placiq
Practice Database Internals Challenges.

We focus on performance and optimization, not just correctness and helping the companies to hire the best.



Real Execution Scoring

Get scored on actual execution time, I/O cost, and plan quality — not just whether your result set matches. Run against 1M–10M row datasets that actually stress your query.



Visual Flame Graphs

Interactive pg_flame-style SVG graphs of your execution plan. Click any node to drill into cost, rows, and time. Instantly see where your query bleeds time.



Leaderboards & Competitions

Compete globally or with friends. Earn badges like "Index God" and "Flame Master". Track streaks, skill heatmaps, and progress toward "DB Black Belt".


Workflow
Practice, Analyze, Optimize.
01
Pick a problem
Browse by difficulty (Easy → Black Belt), tag (indexing, joins, partitioning, window functions, NoSQL aggregation), or DB engine. Real-world inspired problems with full schema context.
500+ problems
02
Write your query
SQL editor with syntax highlighting. Run against a real PostgreSQL sandbox pre-loaded with 1M–10M row datasets.
Real Postgres sandbox
03
See EXPLAIN + Flame Graph
Instantly get EXPLAIN ANALYZE output rendered as an interactive flame graph and tree. Click any node for cost, buffers, rows. See exactly what your DB is doing.
Interactive visualization
04
Optimize & Submit
Reduce cost, improve execution time, and optimize I/O efficiency.
Optimization
EXPLAIN ANALYZE · Interactive Tree ✓ Index used
→ Limit (rows: 100)
Total cost: 4821.23 · actual time: 47.3ms
✓ Plan looks healthy
→ Sort (total_spent DESC)
cost: 4821.23 · actual: 44.1ms
rows: 84,219 · loops: 1
→ HashAggregate
cost: 3108.92 · actual: 38.7ms
rows: 84,219 · Peak mem: 4MB
→ Hash Join (customers × orders)
cost: 1822.44 · actual: 31.2ms
Hash Batches: 1 · Buckets: 65536
✓ Hash fits in memory
→ Index Scan on orders
cost: 0.56..892.1 · actual: 3.1ms
rows: 521,043 using idx_orders_created
✓ Index: idx_orders_created
→ Seq Scan on customers
cost: 0..411.8 · actual: 2.4ms
rows: 10,000 · Filter: none
⚠ Consider covering index
Start thinking like an optimizer.

Join engineers who are learning what really happens inside their database — and getting measurably faster every week.

Join the waitlist →

Already have questions? Chat with us on LinkedIn