Advanced PostgreSQL: Indexing, Partitioning, Replication · Lekcja

Indeksy unikalne i klucza głównego

Zrozumieją Państwo, jak PostgreSQL automatycznie wspiera klucze główne i ograniczenia unikalności za pomocą indeksów oraz jak efektywnie wykorzystywać indeksy unikalne do wymuszania integralności danych.

Lekcja 4 z 413 kroki

Indeksy unikalne i klucza głównego to bezpłatna lekcja Advanced PostgreSQL: Indexing, Partitioning, Replication 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 Advanced PostgreSQL: Indexing, Partitioning, Replication, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera 4 lekcji w sumie.

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

Constraints Need Indexes

To enforce uniqueness, PostgreSQL must check existing rows fast — so it auto-builds a unique index behind every unique constraint and primary key.

Primary Key Index

Declaring a primary key creates a unique B-tree index on those columns and marks them NOT NULL. The code shows it in action.

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  email TEXT
);

The Hidden Index

That primary key silently builds an index called users_pkey. You never wrote CREATE INDEX, yet lookups by id are already fast.

Unique Constraints

A UNIQUE constraint also creates a supporting index and rejects duplicate values — the ALTER TABLE below adds one.

ALTER TABLE users ADD CONSTRAINT users_email_key UNIQUE (email);

Standalone Unique Index

You can build a unique index directly, without a named constraint — it still enforces uniqueness, as the code shows.

CREATE UNIQUE INDEX idx_users_email ON users (email);

Multi-Column Uniqueness

Index multiple columns together for multi-column uniqueness — like one membership per user per group. The code makes the pair unique.

CREATE UNIQUE INDEX idx_membership ON memberships (user_id, group_id);

NULLs and Uniqueness

PostgreSQL treats NULLs as distinct by default, so a unique column allows many NULLs. Add NULLS NOT DISTINCT to forbid more than one.

CREATE UNIQUE INDEX idx_code ON items (code) NULLS NOT DISTINCT;

Partial Unique Index

A partial unique index enforces uniqueness only on rows matching a WHERE clause — for example, one active session per user.

CREATE UNIQUE INDEX idx_active ON sessions (user_id) WHERE active;

Dual Benefit

A unique index gives you two things at once: data integrity and fast lookups. The planner uses it like any other B-tree index.

Constraint vs Index

The constraint is the logical rule; the index enforces it. You can't drop the index without the constraint, and foreign keys can reference these columns.

Cost Awareness

Unique indexes add write overhead since every insert checks for duplicates. Index only the columns that genuinely need to be unique.

Quick Check

Primary keys, NULLs, partial indexes — let's see what stuck about unique indexes.

Recap

Recap: every primary key and unique constraint is backed by a unique B-tree index for integrity plus speed. You can also go standalone, multi-column, or partial — but each adds write cost.

Bezpłatny start

Ucz się Advanced PostgreSQL: Indexing, Partitioning, Replication 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
11
Lekcje
44

Często zadawane pytania

Czy lekcja „Indeksy unikalne i klucza głównego” jest bezpłatna?

Tak — pełny tekst „Indeksy unikalne i klucza głównego” 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 Advanced PostgreSQL: Indexing, Partitioning, Replication, przejdź na CoddyKit PRO. Kurs Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera 4 lekcji w sumie.

Co nauczysz się w „Indeksy unikalne i klucza głównego”?

Zrozumieją Państwo, jak PostgreSQL automatycznie wspiera klucze główne i ograniczenia unikalności za pomocą indeksów oraz jak efektywnie wykorzystywać indeksy unikalne do wymuszania integralności dan… Ćwiczysz Advanced PostgreSQL: Indexing, Partitioning, Replication 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ąć Advanced PostgreSQL: Indexing, Partitioning, Replication?

Nie wymagamy żadnego doświadczenia. Advanced PostgreSQL: Indexing, Partitioning, Replication 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 „Indeksy unikalne i klucza głównego”?

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 Advanced PostgreSQL: Indexing, Partitioning, Replication?

Tak. Każda lekcja Advanced PostgreSQL: Indexing, Partitioning, Replication 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. Dlaczego indeksy mają znaczenie
  2. Podstawy indeksów B-tree
  3. Tworzenie i usuwanie indeksów
  4. Indeksy unikalne i klucza głównego
← Powrót do Advanced PostgreSQL: Indexing, Partitioning, Replication