Advanced PostgreSQL: Indexing, Partitioning, Replication · Lekcja

Implementacja partycjonowania haszującego

Dowiedzą się Państwo, jak partycjonowanie haszujące w PostgreSQL równomiernie rozdziela wiersze między ustalony zbiór partycji za pomocą skrótu klucza — rozwiązanie idealne do równoważenia obciążenia bez naturalnych zakresów.

Lekcja 4 z 413 kroki

Implementacja partycjonowania haszującego 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.

When Range and List Do Not Fit

Range partitioning suits dates; list partitioning suits known categories. But what if you just want even distribution with no natural boundaries?

That is where hash partitioning shines.

What Is Hash Partitioning?

Hash partitioning applies a hash function to the partition key and assigns each row to a partition based on the remainder, spreading rows evenly.

Declaring the Parent Table

Create the parent table partitioned BY HASH on a key column.

CREATE TABLE events (
  id BIGINT,
  user_id BIGINT,
  payload TEXT
) PARTITION BY HASH (user_id);

Creating Partitions

Each partition declares a modulus and remainder. With modulus 4 you create four partitions, remainders 0 to 3.

CREATE TABLE events_0 PARTITION OF events FOR VALUES WITH (MODULUS 4, REMAINDER 0);

The Full Set

You must create partitions covering every remainder, otherwise some rows have nowhere to go.

CREATE TABLE events_1 PARTITION OF events FOR VALUES WITH (MODULUS 4, REMAINDER 1);
CREATE TABLE events_2 PARTITION OF events FOR VALUES WITH (MODULUS 4, REMAINDER 2);
CREATE TABLE events_3 PARTITION OF events FOR VALUES WITH (MODULUS 4, REMAINDER 3);

How Rows Get Routed

On insert, PostgreSQL hashes user_id, takes the remainder modulo 4, and stores the row in the matching partition automatically.

Even Distribution

Because hashing scatters values, partitions stay roughly equal in size, avoiding the hot-partition problem that range partitioning can suffer.

Choosing the Modulus

The modulus equals your number of partitions. Pick it up front, since changing partition count later requires redistributing data.

Indexes per Partition

Create indexes on the parent and PostgreSQL propagates them to all partitions, keeping lookups fast within each shard.

CREATE INDEX ON events (user_id);

Hash vs Range vs List

  • Range: ordered boundaries (dates, numbers)
  • List: discrete known values (regions)
  • Hash: even spread when no natural grouping exists

Limitations

Hash partitioning gives no partition pruning for range queries on the key, since values are scattered. It helps point lookups and write distribution, not range scans.

Quick Check

Test your hash partitioning knowledge.

Recap

Hash partitioning spreads rows evenly across a fixed number of partitions using MODULUS and REMAINDER on a hashed key.

It is ideal for balancing writes and point lookups when there is no natural range or list, but it cannot prune partitions for range queries on the key.

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 „Implementacja partycjonowania haszującego” jest bezpłatna?

Tak — pełny tekst „Implementacja partycjonowania haszującego” 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 „Implementacja partycjonowania haszującego”?

Dowiedzą się Państwo, jak partycjonowanie haszujące w PostgreSQL równomiernie rozdziela wiersze między ustalony zbiór partycji za pomocą skrótu klucza — rozwiązanie idealne do równoważenia obciążenia… Ć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 „Implementacja partycjonowania haszującego”?

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 partycjonowanie
  2. Konfigurowanie partycjonowania zakresowego
  3. Implementacja partycjonowania listowego
  4. Implementacja partycjonowania haszującego
← Powrót do Advanced PostgreSQL: Indexing, Partitioning, Replication