{"guid":"65b550c9-8710-5bd3-993a-603b539811d8","title":"Introduction to Postgres Query Planning","subtitle":null,"slug":"gpn21-195-introduction-to-postgres-query-planning","link":"https://cfp.gulas.ch/gpn21/talk/GUTJAD/","description":"**How do databases get from SQL query to result? How do they do it *quickly*?**\n\nIn this talk, we'll discuss how to represent queries as trees, look at some basics of query optimization and look into the Postgres query planner specifically. With some examples, we'll see how it uses statistics, estimates costs and ultimately decides on an execution plan. We'll open the hood, read some query plans, see what can go wrong and talk about approaches for helping the planner out.\n\nSlides: https://leftshift.github.io/query-planner-talk","original_language":"eng","persons":["floy"],"view_count":200,"promoted":false,"date":"2023-06-09T12:45:00.000+02:00","release_date":"2023-06-09T00:00:00.000+02:00","updated_at":"2026-04-21T19:30:06.709+02:00","tags":["gpn21","195","2023","Software \u0026 Infrastructure"],"length":3422,"duration":3422,"thumb_url":"https://static.media.ccc.de/media/events/gpn/gpn21/195-65b550c9-8710-5bd3-993a-603b539811d8.jpg","poster_url":"https://static.media.ccc.de/media/events/gpn/gpn21/195-65b550c9-8710-5bd3-993a-603b539811d8_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/gpn/gpn21/195-65b550c9-8710-5bd3-993a-603b539811d8.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/gpn/gpn21/195-65b550c9-8710-5bd3-993a-603b539811d8.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/gpn21-195-introduction-to-postgres-query-planning","url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_title":"Gulaschprogrammiernacht 21","conference_url":"https://api.media.ccc.de/public/conferences/gpn21","related":[],"recordings":[{"size":410,"length":3422,"mime_type":"video/webm","language":"eng","filename":"gpn21-195-eng-Introduction_to_Postgres_Query_Planning_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-06-10T05:54:46.948+02:00","recording_url":"https://cdn.media.ccc.de/events/gpn/gpn21/webm-hd/gpn21-195-eng-Introduction_to_Postgres_Query_Planning_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/66759","event_url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_url":"https://api.media.ccc.de/public/conferences/gpn21"},{"size":156,"length":3422,"mime_type":"video/webm","language":"eng","filename":"gpn21-195-eng-Introduction_to_Postgres_Query_Planning_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-06-10T03:46:07.490+02:00","recording_url":"https://cdn.media.ccc.de/events/gpn/gpn21/webm-sd/gpn21-195-eng-Introduction_to_Postgres_Query_Planning_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/66744","event_url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_url":"https://api.media.ccc.de/public/conferences/gpn21"},{"size":108,"length":3422,"mime_type":"video/mp4","language":"eng","filename":"gpn21-195-eng-Introduction_to_Postgres_Query_Planning_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-06-10T00:01:44.713+02:00","recording_url":"https://cdn.media.ccc.de/events/gpn/gpn21/h264-sd/gpn21-195-eng-Introduction_to_Postgres_Query_Planning_sd.mp4","url":"https://api.media.ccc.de/public/recordings/66671","event_url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_url":"https://api.media.ccc.de/public/conferences/gpn21"},{"size":52,"length":3422,"mime_type":"audio/mpeg","language":"eng","filename":"gpn21-195-eng-Introduction_to_Postgres_Query_Planning_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2023-06-10T00:00:04.423+02:00","recording_url":"https://cdn.media.ccc.de/events/gpn/gpn21/mp3/gpn21-195-eng-Introduction_to_Postgres_Query_Planning_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/66670","event_url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_url":"https://api.media.ccc.de/public/conferences/gpn21"},{"size":38,"length":3422,"mime_type":"audio/opus","language":"eng","filename":"gpn21-195-eng-Introduction_to_Postgres_Query_Planning_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2023-06-09T23:54:18.869+02:00","recording_url":"https://cdn.media.ccc.de/events/gpn/gpn21/opus/gpn21-195-eng-Introduction_to_Postgres_Query_Planning_opus.opus","url":"https://api.media.ccc.de/public/recordings/66668","event_url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_url":"https://api.media.ccc.de/public/conferences/gpn21"},{"size":353,"length":3422,"mime_type":"video/mp4","language":"eng","filename":"gpn21-195-eng-Introduction_to_Postgres_Query_Planning_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-06-09T23:44:42.600+02:00","recording_url":"https://cdn.media.ccc.de/events/gpn/gpn21/h264-hd/gpn21-195-eng-Introduction_to_Postgres_Query_Planning_hd.mp4","url":"https://api.media.ccc.de/public/recordings/66651","event_url":"https://api.media.ccc.de/public/events/65b550c9-8710-5bd3-993a-603b539811d8","conference_url":"https://api.media.ccc.de/public/conferences/gpn21"}]}