Improving Query Performance in PostgreSQL
Amy McCarty
Instructor
What?
Why?
How?
holiday | holiday_type | country_code |
---|---|---|
Epiphany | religious | CZE |
Epiphany | religious | FRA |
Epiphany | religious | USA |
Thanksgiving | secular | USA |
CREATE TEMP TABLE usa_holidays AS
SELECT holiday, holiday_type
FROM world_holidays
WHERE country_code = 'USA';
USA Holidays
holiday | holiday_type |
---|---|
Epiphany | religious |
Thanksgiving | secular |
Table Stats | World Holidays | USA Holidays |
---|---|---|
Type | table | temp table |
# Rows | 591,444 | 25 |
Table Stats | World Holidays | USA Holidays |
---|---|---|
Type | view | temp_table |
# Rows | 591,444 | 25 |
Sources | 195 | 1 |
CREATE TEMP TABLE usa_holidays AS
SELECT holiday, holiday_type
FROM world_holidays
WHERE country_code = 'USA';
WITH religious AS
( SELECT usa.holiday, r.initial_yr
, r.celebration_dt
FROM religious r
INNER JOIN usa_holidays usa
USING (holiday) )
, secular AS
( SELECT usa.holiday, s.initial_yr
, s.celebration_dt
FROM secular s
INNER JOIN usa_holidays usa
USING (holiday) )
, ...
1 CREATE TEMP TABLE usa_holidays AS
2 SELECT holiday, holiday_type
3 FROM world_holidays
4 WHERE country_code = 'USA';
5
6 ANALYZE usa_holidays;
7
8 SELECT * FROM usa_holidays
Query planner (execution steps)
Improving Query Performance in PostgreSQL