April 2018
Intermediate to advanced
508 pages
15h 22m
English
A few types of things that you may expect to be executed as subqueries will actually turn into types of joins instead. This happens when using a Subquery to find a list of rows then used for IN:
EXPLAIN ANALYZE SELECT * FROM orders WHERE customerid IN (SELECT customerid FROM customers where state='MD');
QUERY PLAN
----------
Hash Semi Join (cost=728.34..982.61 rows=249 width=36) (actual time=11.521..55.139 rows=120 loops=1)
Hash Cond: (orders.customerid = customers.customerid)
-> Seq Scan on orders (cost=0.00..220.00 rows=12000 width=36) (actual time=0.009..20.496 rows=12000 loops=1)
-> Hash (cost=726.00..726.00 rows=187 width=4) (actual time=11.437..11.437 rows=187 loops=1)
Buckets: 1024 Batches: 1 Memory ...Read now
Unlock full access