postgres-dla-programistów · v1.0

Znasz Pythona.
Czas żebyś naprawdę
poznał swoją bazę danych.

Praktyczny kurs PostgreSQL dla programistów, którzy do tej pory radzili sobie dzięki ORM. Indeksy, plany zapytań, JSONB, transakcje i prawdziwa optymalizacja zapytań - wyjaśnione z perspektywy praktyka.

8modułów
47lekcji
6.5hwideo
dostęp do bazy danych w chmurze
Ekspercka wiedza i technologie, z których korzystamy w tym kursie:
psycopg 3 SQLAlchemy 2.0 Django ORM Alembic PostgreSQL 16
dla kogo

Stworzony dla programisty, którego ORM dotąd wyręczał.

Jeśli używasz ORM-a bez problemu, ale baza danych wygląda dla ciebie jak czarna skrzynka — ten kurs jest dla ciebie. Brzmi znajomo?

Sięgasz po .filter() i zacinasz się przy surowym JOINie

ORM jest wygodny. Ale w momencie, gdy schodzisz do SQL — albo ktoś prosi o zapytanie, którego ORM nie potrafi wyrazić — strzelasz na oślep.

EXPLAIN ANALYZE wygląda jak hieroglify

Słyszałeś, że tak właśnie znajduje się wolne zapytania. Ale nigdy nie byłeś w stanie przeczytać wyniku dalej niż pierwsza linijka.

Wszystko działa — dopóki nie pojawi się milion rekordów

Lokalnie jest błyskawicznie. Produkcja się wlecze. Dodajesz losowy indeks, modlisz się i tak naprawdę nie wiesz, czy pomogło.

program kursu

Osiem modułów — od kluczowych podstaw do świadomego dewelopera.

Każdy moduł zamykamy przekrojowym testem wiedzy. Sprawdzasz swoje przygotowanie, eliminujesz błędne nawyki i widzisz czarno na białym, które zagadnienia masz już opanowane do perfekcji.

01

Relacyjne podstawy, które ORM przed tobą ukrywa

Czym naprawdę są tabele, krotki. klucze główne, ograniczenia i dlaczego to baza danych — nie twoja aplikacja — powinna strzec integralności danych.

schemasconstraintsdata typesnormalization
5 lekcji · 38 min
02

Indeksy: B-tree, GIN, BRIN — i kiedy każdy wygrywa

Największa pojedyncza dźwignia szybkości zapytań. Zbuduj właściwy indeks dla wzorca dostępu i dowiedz się, dlaczego połowa twoich indeksów nigdy nie jest używana.

b-treepartial indexescoveringGIN / GiST
7 lekcji · 1 godz. 04 min
03

Czytanie planera zapytań

W końcu EXPLAIN ANALYZE będzie czytelny. Seq scany kontra index scany, szacowane kontra rzeczywiste wiersze i jak znaleźć linię, która kosztuje cię sekundy.

EXPLAINcost modelstatisticsjoin strategies
6 lekcji · 52 min
04

Joiny, CTE i funkcje okna

SQL, którego ORM nie napisze za ciebie. Narastające sumy, rankingi, deduplikacja i zapytania raportowe, których naprawdę będziesz reużywał w pracy.

LATERALCTEswindow fnsaggregates
8 lekcji · 1 godz. 11 min
05

JSONB i dane półustrukturyzowane

Kiedy sięgać po JSONB i kiedy cię to zniszczy. Odpytywanie, indeksowanie i aktualizowanie JSON bez zamieniania Postgresa w wolny magazyn dokumentów.

jsonb opsGIN on jsonbgenerated cols
5 lekcji · 41 min
06

Transakcje, izolacja i blokady

Błędy, które pojawiają się tylko przy współbieżności. Poziomy izolacji, utracone aktualizacje, zakleszczenia i SELECT ... FOR UPDATE.

MVCCisolationrow locksdeadlocks
6 lekcji · 49 min
07

Strojenie wydajności i connection pooling

Od wolnego endpointu do naprawy. Cachowanie, VACUUM, bloat, pooling z PgBouncerem i ustawienia, które naprawdę mają znaczenie.

VACUUMPgBouncerpg_statN+1
6 lekcji · 58 min
08

Bezpośrednia integracja Postgresa w aplikacjach.

Połącz wszystko w kodzie. psycopg 3, async z asyncpg, SQLAlchemy 2.0 Core kontra ORM, migracje i unikanie pułapki N+1 raz na zawsze.

psycopg3asyncpgSQLAlchemyAlembic
4 lekcje · 47 min
rezultaty

Co będziesz potrafił po kursie.

Zrozumienie surowego SQLa

Wychodź z ORM zawsze, gdy sytuacja tego wymaga — i wiedz dokładnie, jakie zapytanie uruchamiasz.

Zdiagnozuj wolne zapytanie w kilka minut

Przeczytaj plan zapytania, znajdź wąskie gardło i udowodnij, że twoja naprawa zadziałała.

Projektuj indeksy, które są używane

Dopasuj indeks do wzorca dostępu zamiast zgadywać i mieć nadzieję.

Modeluj JSON bez żalu

Wiedz, kiedy JSONB to właściwy wybór i jak utrzymać go szybkim w miarę wzrostu.

Przeżyj współbieżność

Wybierz właściwy poziom izolacji i unikaj zakleszczeń i utraconych aktualizacji, które gryzą na produkcji.

Połącz Pythona we właściwy sposób

Pooling, async i migracje skonfigurowane tak, żeby twoja aplikacja i baza danych naprawdę współpracowały.

przedsmak pracy

Ten sam wynik.
Jedno rozwiązanie jest o wiele szybsze.

Większość poradników rzuca tylko suchą składnią. My idziemy krok dalej – tam, gdzie automatyczne frameworki już nie pomogą. Sprawdzamy, co dzieje się pod maską ORMa.

the_orm.py
# looks innocent. fires 1 + N queries. authors = Author.objects.all() for a in authors: print(a.name, a.books.count())
queries issued1 + 1,204
total time2.41 s
# the classic N+1. you've shipped this.
-- one query. the planner does the work. SELECT a.name, count(b.id) FROM authors a LEFT JOIN books b ON b.author_id = a.id GROUP BY a.name;
queries issued1
total time11 ms
-- ~219× faster. same data.
-- and here's how you'd prove it HashAggregate (actual rows=1204) -> Hash Left Join (rows=88k) Hash Cond: (b.author_id = a.id) -> Index Scan on books_author_idx
Execution Time11.04 ms
-- module 3 teaches you to read every line
lista oczekujących

Kurs wkrótce dostępny.

Wpisz swój e-mail – dostaniesz powiadomienie, gdy tylko kurs ujrzy światło dzienne i ruszy sprzedaż.

waitlist

Zero spamu. Jeden e-mail przy starcie.

  • Wszystkie 8 modułów · 47 lekcji · 6,5 godziny wideo
  • Bezpłatne aktualizacje dożywotnie wraz z rozwojem kursu
FAQ

Pytania i odpowiedzi.

Czy muszę już znać SQL? +

Niezależnie od Twojego poziomu — to miejsce dla Ciebie. Jasne, znajomość podstaw Pythona i baz danych ułatwia start, ale jeśli ich nie posiadasz, pokażemy Ci wszystko po kolei. Początkujący dostaną solidne, poukładane fundamenty, a zaawansowani deweloperzy — głęboką wiedzę o optymalizacji i mechanice bazy

Czy muszę instalować Postgres lokalnie? +

Nie musisz się martwić o przygotowanie środowiska. Każdy student otrzymuje kompletny, gotowy playbook, który krok po kroku przeprowadzi Cię przez cały proces. Co więcej, konfiguracji lokalnej poświęciliśmy całą osobną lekcję — wspólnie postawimy wszystko na Twoim komputerze, żebyś od samego początku mógł bez przeszkód uruchamiać prawdziwe zapytania.

Jakich wersji używa kurs? +

PostgreSQL 16 po stronie serwera i Python 3.12 z psycopg 3, SQLAlchemy 2.0 i asyncpg w przykładach kodu. Koncepcje stosują się czysto do Postgresa od wersji 12 do 17 — uwagi dotyczące konkretnych wersji są zaznaczone tam, gdzie mają znaczenie.

Czy to tylko SQL, czy też Python? +

Oba, celowo. Nauczysz się Postgresa dogłębnie, a ostatni moduł łączy każdą koncepcję z prawdziwym Pythonem — obsługa połączeń, async, pooling, migracje i unikanie pułapki N+1 w twoich własnych aplikacjach.

Jak długo mam dostęp? +

Na zawsze. To jednorazowy zakup z dożywotnim dostępem, łącznie ze wszystkimi przyszłymi aktualizacjami materiałów bez dodatkowych kosztów.

Co jeśli to nie dla mnie? +

Mamy 30-dniową gwarancję zwrotu pieniędzy bez zadawania pytań. Jeśli kurs nie posuwa twoich umiejętności Postgres do przodu, napisz do nas e-mail, a zwrócimy ci pełną kwotę.

Przestań walczyć z ORM.
Poznaj bazę danych od środka.