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

Kiedy warto użyć indeksu złożonego?

Tagi
#composite-index#query-planner#performance
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Indeks złożony warto stosować, gdy zapytania często filtrują lub sortują po tym samym zestawie kolumn w tej samej kolejności. PostgreSQL używa zasady leftmost‑prefix, więc kolejność kolumn ma znaczenie. Unikaj indeksów złożonych, gdy pierwsze kolumny mają niską selektywność lub rzadko występują razem.

Odpowiedź zaawansowana

Głębiej

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

  • Kontekst (tagi): composite-index, query-planner, 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

Krótki przykład (kształt zapytania):

-- Example: index + query shape
SELECT *
FROM users
WHERE email = '[email protected]'
LIMIT 1;

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
Materialized view vs view: jaka jest różnica?
#postgres#views#materialized-view
PostgreSQL
Bloat w PostgreSQL: skąd się bierze i jak go zmniejszyć?
#postgres#mvcc#vacuum
PostgreSQL
PostgreSQL `COPY`: do czego służy i czemu jest szybkie?
#postgres#copy#bulk-load
PostgreSQL
Co to jest partial index w PostgreSQL i kiedy jest przydatny?
#postgres#index#partial-index
PostgreSQL
Co to jest `work_mem` i czemu sortowanie albo hash join może „wylać się” na dysk?
#work_mem#sort#hash-join
PostgreSQL
BRIN vs B-tree — kiedy BRIN ma sens?
#brin#btree#index