Implementering av hash-partisjonering
Lær hvordan PostgreSQL-hash-partisjonering fordeler rader jevnt på et fast antall partisjoner ved hjelp av en hash av nøkkelen – ideelt for balansering av belastning uten naturlige intervaller.
Implementering av hash-partisjonering er en gratis leksjon i Avansert PostgreSQL: Indeksering, partisjonering og replikering på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Avansert PostgreSQL: Indeksering, partisjonering og replikering, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Avansert PostgreSQL: Indeksering, partisjonering og replikering inneholder totalt 4 leksjoner.
Når intervall- og list partisjonering ikke passer
Intervallpartisjonering passer for datoer, mens listpartisjonering passer for kjente kategorier. Men hva om De bare ønsker jevn fordeling uten naturlige grenser?
Det er her hashpartisjonering utmerker seg.
Hva er hashpartisjonering?
Hashpartisjonering bruker en hashfunksjon på partisjonsnøkkelen og tildeler hver rad til en partisjon basert på resten, slik at radene fordeles jevnt.
Deklarere overordnet tabell
Opprett den overordnede tabellen partisjonert BY HASH på en nøkkelkolonne.
CREATE TABLE events (
id BIGINT,
user_id BIGINT,
payload TEXT
) PARTITION BY HASH (user_id);Opprette partisjoner
Hver partisjon erklærer en modulus og en rest. Med modulus 4 oppretter De fire partisjoner, med restverdier fra 0 til 3.
CREATE TABLE events_0 PARTITION OF events FOR VALUES WITH (MODULUS 4, REMAINDER 0);Det komplette settet
De må opprette partisjoner som dekker alle restverdiene. Ellers har enkelte rader ingen steder å lagres.
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);Slik rutes rader
Ved innsetting beregner PostgreSQL hashen for user_id, finner resten modulo 4 og lagrer raden automatisk i den samsvarende partisjonen.
Jevn fordeling
Fordi hashing sprer verdiene, holder partisjonene seg omtrent like store. Dermed unngår De problemet med overbelastede partisjoner som intervallpartisjonering kan føre til.
Velge modulus
Modulus tilsvarer antallet partisjoner. Velg den på forhånd, siden en senere endring av antallet partisjoner krever at dataene fordeles på nytt.
Indekser per partisjon
Opprett indekser på den overordnede tabellen, så viderefører PostgreSQL dem til alle partisjonene. Dermed forblir oppslagene raske i hver shard.
CREATE INDEX ON events (user_id);Hash kontra intervall kontra liste
- Intervall: ordnede grenser (datoer, tall)
- Liste: diskrete, kjente verdier (regioner)
- Hash: jevn fordeling når det ikke finnes noen naturlig gruppering
Begrensninger
Hashpartisjonering gir ingen partisjonsbeskjæring for intervallspørringer på nøkkelen, siden verdiene er spredt. Den hjelper ved punktoppslag og fordeling av skriving, men ikke ved intervallskanninger.
Hurtigsjekk
Test kunnskapene Deres om hashpartisjonering.
Oppsummering
Hashpartisjonering fordeler rader jevnt på et fast antall partisjoner ved hjelp av MODULUS og REMAINDER på en hashet nøkkel.
Den egner seg godt til å balansere skriving og punktoppslag når det ikke finnes noe naturlig intervall eller noen liste, men den kan ikke beskjære partisjoner for intervallspørringer på nøkkelen.
Lær deg Avansert PostgreSQL: Indeksering, partisjonering og replikering med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 11
- Leksjoner
- 44
Ofte stilte spørsmål
Er leksjonen «Implementering av hash-partisjonering» gratis?
Ja – hele teksten i «Implementering av hash-partisjonering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Avansert PostgreSQL: Indeksering, partisjonering og replikering-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Avansert PostgreSQL: Indeksering, partisjonering og replikering inneholder totalt 4 leksjoner.
Hva lærer jeg i «Implementering av hash-partisjonering»?
Lær hvordan PostgreSQL-hash-partisjonering fordeler rader jevnt på et fast antall partisjoner ved hjelp av en hash av nøkkelen – ideelt for balansering av belastning uten naturlige intervaller. Du øver på Avansert PostgreSQL: Indeksering, partisjonering og replikering med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Avansert PostgreSQL: Indeksering, partisjonering og replikering?
Ingen tidligere erfaring er nødvendig. Avansert PostgreSQL: Indeksering, partisjonering og replikering på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Implementering av hash-partisjonering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Avansert PostgreSQL: Indeksering, partisjonering og replikering-leksjonen?
Ja. Alle Avansert PostgreSQL: Indeksering, partisjonering og replikering-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hvorfor partisjonering?
- Oppsett av områdepartisjonering
- Implementering av listepartisjonering
- Implementering av hash-partisjonering