fatcousin
search
⌘
K
→
jump to any tool — keyboard-first launcher.
tools
→
browse every utility in one place.
manifesto
→
why fatcousin exists — local-first, no uploads.
install
→
save this toolset to your device — works offline.
search
⌘
K
→
jump to any tool — keyboard-first launcher.
ready
local
verify
→
←
home
e
x
p
l
a
i
n
q
u
e
r
y
paste postgresql / mysql explain output · visual query plan · bottlenecks
[
dialect
]
(•)
postgresql
( )
mysql
[
explain output
]
Seq Scan on orders (cost=0.00..1234.56 rows=42 width=128) (actual time=0.043..12.345 rows=42 loops=1) Filter: ((total > 100) AND (active = true)) Rows Removed by Filter: 9958 -> Hash Join (cost=10.50..800.30 rows=42 width=96) (actual time=0.210..10.120 rows=200 loops=1) Hash Cond: (orders.user_id = users.id) -> Seq Scan on users (cost=0.00..500.00 rows=10000 width=40) -> Hash (cost=7.00..7.00 rows=200 width=56) Buckets: 1024 Batches: 1 Memory Usage: 24kB -> Index Scan using idx_users_active on users (cost=0.29..7.00 rows=200 width=56) Index Cond: (active = true) Planning Time: 0.234 ms Execution Time: 12.789 ms
12 nodes
clear
sample
[
timing
]
planning
234µs
execution
12.79ms
slow nodes
0
seq scans
2
[
bottlenecks
]
▲
sequential scan · Seq Scan on orders
consider adding an index on this table
▲
sequential scan · Seq Scan on users
consider adding an index on this table
[
query plan
]
▾
Seq Scan
seq scan
12.35ms
est cost: 0.00..1234.56
est rows: 42
actual rows: 42
loops: 1
▾
Filter: ((total > 100) AND (active = true))
▾
Rows Removed by Filter: 9958
filtered out: 9958
▾
Hash Join
10.12ms
est cost: 10.50..800.30
est rows: 42
actual rows: 200
loops: 1
▾
Hash Cond: (orders.user_id = users.id)
▾
Seq Scan
seq scan
cost 500.00
est cost: 0.00..500.00
est rows: 10000
▾
Hash
cost 7.00
est cost: 7.00..7.00
est rows: 200
▾
Buckets: 1024
▾
Index Scan using idx_users_active on users
cost 7.00
est cost: 0.29..7.00
est rows: 200
▾
Index Cond: (active = true)
▾
Planning Time: 0.234 ms
▾
Execution Time: 12.789 ms
[
status
]
>
ready