PostgreSQL Performance & Query Optimization · Lekcja

Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE

Rozszyfruj plany zapytań PostgreSQL za pomocą EXPLAIN, aby zobaczyć, jak planner wykonuje zapytanie i na co rzeczywiście zużywany jest czas.

Lekcja 4 z 413 kroki

Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE to bezpłatna lekcja PostgreSQL Performance & Query Optimization na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PostgreSQL Performance & Query Optimization, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PostgreSQL Performance & Query Optimization zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Why Read Query Plans

Before tuning a slow query, see what PostgreSQL actually does. EXPLAIN shows the planner's chosen execution plan as a tree of nodes.

EXPLAIN vs EXPLAIN ANALYZE

EXPLAIN shows estimates only; EXPLAIN ANALYZE actually runs the query and reports real timings and row counts — far more useful for diagnosis.

EXPLAIN ANALYZE
SELECT * FROM orders WHERE customer_id = 42;

The Plan Tree

Read plan trees inside-out and bottom-up: leaf nodes scan data, parents join or aggregate. Each node reports its cost, rows, and width.

The cost Numbers

The cost reads as cost=0.00..18.45: first is startup cost, second is total, both in arbitrary planner units used to compare competing plans.

Sequential Scan

A Seq Scan reads the whole table — fine for small tables or when most rows match, but a red flag on a selective query over a large one.

Index Scan

An Index Scan uses an index to find matching rows, then fetches them from the table. It's the win for selective predicates.

Estimated vs Actual Rows

Compare estimated rows with actual rows. A big mismatch means stale statistics and often a bad plan — run ANALYZE to refresh them, as shown below.

ANALYZE orders;

Spotting the Bottleneck

To find the bottleneck, hunt for the node with the largest actual time, or one whose loops multiply its cost. That's where to focus tuning.

BUFFERS for I/O Insight

Add BUFFERS to your EXPLAIN to see how many pages came from cache versus disk — the fast way to spot I/O-bound queries. See the example below.

EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM orders WHERE total > 100;

Join Strategies

Watch the join strategy: Nested Loop, Hash Join, or Merge Join. A Nested Loop over many rows without an index is a classic slow pattern.

Readable Formats

For big plans, switch to FORMAT JSON or a visual tool to explore them more easily. The query below shows the JSON option.

EXPLAIN (ANALYZE, FORMAT JSON)
SELECT * FROM orders;

Quick Check

Test what you have learned.

Recap

Recap: read EXPLAIN trees, compare estimates with ANALYZE actuals, tell Seq from Index scans and join types, use BUFFERS, and find the bottleneck node.

Bezpłatny start

Ucz się SQL dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
22
Lekcje
88

Często zadawane pytania

Czy lekcja „Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE” jest bezpłatna?

Tak — pełny tekst „Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PostgreSQL Performance & Query Optimization, przejdź na CoddyKit PRO. Kurs PostgreSQL Performance & Query Optimization zawiera 4 lekcji w sumie.

Co nauczysz się w „Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE”?

Rozszyfruj plany zapytań PostgreSQL za pomocą EXPLAIN, aby zobaczyć, jak planner wykonuje zapytanie i na co rzeczywiście zużywany jest czas. Ćwiczysz PostgreSQL Performance & Query Optimization z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PostgreSQL Performance & Query Optimization?

Nie wymagamy żadnego doświadczenia. PostgreSQL Performance & Query Optimization w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PostgreSQL Performance & Query Optimization?

Tak. Każda lekcja PostgreSQL Performance & Query Optimization zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy wydajności baz danych
  2. Przegląd architektury PostgreSQL
  3. Podstawowy przebieg wykonywania zapytań
  4. Odczytywanie wyników EXPLAIN i EXPLAIN ANALYZE
← Powrót do PostgreSQL Performance & Query Optimization