Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/PostgreSQL
PostgreSQLmedium

Co to jest partial index w PostgreSQL i kiedy jest przydatny?

Tagi
#postgres#index#partial-index#performance
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Partial index indeksuje tylko wiersze spełniające warunek WHERE. Przydaje się, gdy większość wierszy nie musi być indeksowana (np. tylko aktywne lub nieusunięte), dzięki czemu indeks jest mniejszy i szybszy w użyciu oraz utrzymaniu.

CREATE INDEX idx_users_active_email
ON users (email)
WHERE active = true AND deleted_at IS NULL;

Odpowiedź zaawansowana

Głębiej

Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:

  • Kontekst (tagi): postgres, index, partial-index, performance
  • Model danych i dostęp: jakie zapytania dominują (read/write ratio, sortowanie, paginacja).
  • Indeksy: kiedy pomagają, a kiedy szkodzą (write amplification, pamięć).
  • Spójność i transakcje: co jest gwarantowane i gdzie trzeba uważać.
  • Wytłumacz "dlaczego", nie tylko "co" (intuicja + konsekwencje).
  • Trade-offy: co zyskujesz i co tracisz (czas, pamięć, złożoność, ryzyko).
  • Edge-case’y: puste dane, duże dane, błędne dane, współbieżność.

Przykłady

Poniżej dodatkowy przykład (bazuje na tym, co już jest w odpowiedzi):

CREATE INDEX idx_users_active_email
ON users (email)
WHERE active = true AND deleted_at IS NULL;

Typowe pułapki

  • Zbyt ogólna odpowiedź (brak konkretów, brak przykładów).
  • Brak rozróżnienia między "średnio" a "najgorzej" (np. złożoność).
  • Pomijanie ograniczeń: pamięć, współbieżność, koszty sieci/dysku.

Pytania uzupełniające na rozmowie

  • Kiedy zastosował(a)byś alternatywę i dlaczego?
  • Jakie są typowe problemy w produkcji i jak je diagnozować?
  • Jak byś przetestował(a) edge-case’y?

Powiązane pytania

PostgreSQL
Jak `pg_stat_activity` i `pg_stat_statements` pomagają w troubleshootingu?
#postgres#monitoring#pg_stat_activity
PostgreSQL
Materialized view vs view: jaka jest różnica?
#postgres#views#materialized-view
PostgreSQL
LISTEN/NOTIFY: jaki problem rozwiązuje?
#postgres#listen-notify
#pubsub
PostgreSQL
Advisory locks: co to jest i kiedy się ich używa?
#postgres#locks#advisory
PostgreSQL
Indeks BRIN: kiedy jest przydatny?
#postgres#brin#indexes
PostgreSQL
Indeksy GIN vs GiST: kiedy użyć którego?
#postgres#indexes#gin