Vadnica za particioniranje PostgreSQL

Vadnica Za Particioniranje Postgresql



Za vsako zbirko podatkov je zmogljivost ena metrika, ki jo je treba obravnavati za učinkovito zanesljivost, zlasti kadar gre za velike količine podatkov. S PostgreSQL morate ustvariti particije tabele, da prihranite čas in vire, potrebne za skeniranje tabele med iskanjem zapisa. Z razdelitvijo velike tabele na manjše dele je potrebno manj zamenjave pomnilnika in vaša aplikacija bo delovala bolje, saj prihrani pri operacijah baze podatkov.

Ta objava pokriva particioniranje PostgreSQL. Razpravljali bomo o različnih možnostih particioniranja, ki jih lahko uporabite, in podali primere, kako jih uporabiti za boljše razumevanje.

Kako ustvariti particije PostgreSQL

Vsaka zbirka podatkov lahko vsebuje številne tabele z več vnosi. Za enostavno upravljanje bi morali razdeliti tabele, kar je odlična in priporočljiva rutina za shranjevanje podatkov za optimizacijo baze podatkov in pomoč pri zanesljivosti. Ustvarite lahko različne particije, vključno s seznamom, obsegom in zgoščeno vrednostjo. Pogovorimo se o vsakem podrobneje.







1. Particioniranje seznama

Preden razmislimo o kakršnem koli particioniranju, moramo ustvariti tabelo, ki jo bomo uporabili za particije. Pri ustvarjanju tabele upoštevajte dano sintakso za vse particije:



CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY (partition_key);

»Ime_tabele« je ime vaše tabele poleg različnih stolpcev, ki jih bo imela tabela, in njihovih tipov podatkov. Za “partition_key” je to stolpec, po katerem bo prišlo do particioniranja. Naslednja slika na primer prikazuje, da smo ustvarili tabelo »tečaji« s tremi stolpci. Poleg tega je naš tip particioniranja LIST, za naš particijski ključ pa izberemo stolpec fakultete:







Ko je tabela ustvarjena, moramo ustvariti različne particije, ki jih potrebujemo. Za to nadaljujte z naslednjo sintakso:

CREATE TABLE partition_table PARTITION OF main_table FOR VALUES IN (VALUE);

Na primer, prvi primer na naslednji sliki prikazuje, da smo ustvarili particijsko tabelo z imenom »Fset«, ki vsebuje vse vrednosti v stolpcu »faculty«, ki smo ga izbrali kot naš particijski ključ, katerega vrednost je »FSET«. Podobno logiko smo uporabili za drugi dve particiji, ki smo ju ustvarili.



Ko imate particije, lahko vstavite vrednosti v glavno tabelo, ki smo jo ustvarili. Vsaka vrednost, ki jo vstavite, se ujema z ustreznim particioniranjem na podlagi vrednosti v particijskem ključu, ki ste ga izbrali.

Če navedemo vse vnose v glavni tabeli, lahko vidimo, da so v njej vsi vnosi, ki smo jih vstavili.

Če želite preveriti, ali smo uspešno ustvarili particije, preverimo zapise v vsaki od ustvarjenih particij.

Upoštevajte, da vsaka particionirana tabela vsebuje le vnose, ki ustrezajo kriterijem, ki so definirani pri particioniranju. Tako deluje razdelitev po seznamu.

2. Razdelitev obsega

Drugo merilo za ustvarjanje particij je uporaba možnosti RANGE. Za to moramo določiti začetno in končno vrednost, ki bo uporabljena za obseg. Uporaba te metode je idealna pri delu z datumi.

Njena sintaksa za ustvarjanje glavne tabele je naslednja:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY RANGE (particijski ključ);

Ustvarili smo tabelo »cust_orders« in jo določili za uporabo datuma kot našega »partition_key«.

Če želite ustvariti particije, uporabite naslednjo sintakso:

CREATE TABLE partition_table PARTITION OF main_table ZA VREDNOSTI OD (začetna_vrednost) DO (končna_vrednost);

Naše particije smo določili tako, da delujejo četrtletno z uporabo stolpca »datum«.

Ko ustvarimo vse particije in vstavimo podatke, je naša tabela videti takole:

Če preverimo vnose v ustvarjenih particijah, preverimo, ali naše particioniranje deluje in imamo samo ustrezne zapise glede na kriterije particioniranja, ki smo jih določili. Vsi novi vnosi, ki jih dodate v tabelo, se samodejno dodajo v ustrezno particijo.

3. Zgoščeno particioniranje

Zadnji delitveni kriterij, o katerem bomo razpravljali, je uporaba zgoščene vrednosti. Hitro ustvarimo glavno tabelo z naslednjo sintakso:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY HASH (particijski ključ);

Pri particioniranju z zgoščevanjem morate podati modul in ostanek, vrstice, ki jih želite deliti z zgoščeno vrednostjo vašega podanega »partition_key«. Za naš primer uporabimo modul 4.

Naša sintaksa je naslednja:

CREATE TABLE partition_table PARTITION OF main_table ZA VREDNOSTI Z (MODULUS num1, REMAINDER num2);

Naše particije so naslednje:

Za »main_table« vsebuje vnose, ki so prikazani v naslednjem:

Za ustvarjene particije lahko hitro dostopamo do njihovih vnosov in preverimo, ali naše particioniranje deluje.

Zaključek

Particije PostgreSQL so priročen način optimizacije baze podatkov, da prihranite čas in povečate zanesljivost. Podrobno smo razpravljali o particioniranju, vključno z različnimi razpoložljivimi možnostmi. Poleg tega smo podali primere, kako implementirati particije. Preizkusite jih!