Vodič za particioniranje PostgreSQL-a

Vodic Za Particioniranje Postgresql A



Za svaku bazu podataka, izvedba je jedna metrika koja se mora razmotriti za učinkovitu pouzdanost, posebno kada su uključeni veliki podaci. Uz PostgreSQL, morate stvoriti particije tablice kako biste uštedjeli vrijeme i resurse potrebne za skeniranje tablice dok tražite zapis. Dijeljenjem velike tablice na manje dijelove potrebno je manje zamjene memorije i vaša će aplikacija raditi bolje jer štedi na operacijama baze podataka.

Ovaj post pokriva PostgreSQL particioniranje. Razgovarat ćemo o različitim opcijama particioniranja koje možete koristiti i dati primjere kako ih koristiti za bolje razumijevanje.

Kako stvoriti PostgreSQL particije

Svaka baza podataka može sadržavati brojne tablice s više unosa. Za jednostavno upravljanje, trebali biste particionirati tablice što je odlična i preporučena rutina skladištenja podataka za optimizaciju baze podataka i pomoć u pouzdanosti. Možete stvoriti različite particije uključujući popis, raspon i hash. Razgovarajmo o svakom detaljnije.







1. Particioniranje popisa

Prije razmatranja bilo kakvog particioniranja, moramo stvoriti tablicu koju ćemo koristiti za particije. Prilikom izrade tablice slijedite zadanu sintaksu za sve particije:



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

'table_name' je naziv za vašu tablicu uz različite stupce koje će tablica imati i njihove vrste podataka. Za 'partition_key', to je stupac po kojem će se particioniranje izvršiti. Na primjer, sljedeća slika pokazuje da smo kreirali tablicu 'tečajevi' s tri stupca. Štoviše, naš tip particioniranja je LIST, a odabiremo stupac fakulteta kao ključ particioniranja:







Nakon što je tablica stvorena, moramo stvoriti različite particije koje su nam potrebne. Za to nastavite sa sljedećom sintaksom:

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

Na primjer, prvi primjer na sljedećoj slici pokazuje da smo stvorili particijsku tablicu pod nazivom 'Fset' koja sadrži sve vrijednosti u stupcu 'faculty' koji smo odabrali kao naš particijski ključ čija je vrijednost 'FSET'. Koristili smo sličnu logiku za druge dvije particije koje smo stvorili.



Nakon što imate particije, možete umetnuti vrijednosti u glavnu tablicu koju smo izradili. Svaka vrijednost koju umetnete podudara se s odgovarajućim particioniranjem na temelju vrijednosti u ključu particije koji ste odabrali.

Ako ispišemo sve unose u glavnoj tablici, možemo vidjeti da ona sadrži sve unose koje smo umetnuli.

Kako bismo potvrdili da smo uspješno stvorili particije, provjerimo zapise u svakoj od stvorenih particija.

Primijetite kako svaka particionirana tablica sadrži samo unose koji odgovaraju kriterijima koji su definirani prilikom particioniranja. Tako funkcionira podjela po listi.

2. Podjela raspona

Drugi kriterij za stvaranje particija je korištenje opcije RANGE. Za ovo moramo navesti početnu i krajnju vrijednost za korištenje raspona. Korištenje ove metode idealno je kada radite s datumima.

Njegova sintaksa za stvaranje glavne tablice je sljedeća:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTICIJA PO RANGE (particijski ključ);

Napravili smo tablicu 'cust_orders' i specificirali je da koristi datum kao naš 'partition_key'.

Za izradu particija koristite sljedeću sintaksu:

CREATE TABLE partition_table PARTICIJA glavne_tablice ZA VRIJEDNOSTI OD (početna_vrijednost) DO (krajnja_vrijednost);

Definirali smo da naše particije rade tromjesečno pomoću stupca 'datum'.

Nakon izrade svih particija i umetanja podataka, ova tablica izgleda ovako:

Ako provjerimo unose u kreiranim particijama, provjeravamo da naše particioniranje radi i da imamo samo odgovarajuće zapise prema kriterijima particioniranja koje smo naveli. Za sve nove unose koje dodate u svoju tablicu, oni se automatski dodaju u odgovarajuću particiju.

3. Hash particioniranje

Posljednji kriterij dijeljenja o kojem ćemo raspravljati je korištenje hash-a. Kreirajmo brzo glavnu tablicu koristeći sljedeću sintaksu:

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

Prilikom particioniranja s hashom, morate unijeti modul i ostatak, retke koji se dijele s hash vrijednošću vašeg navedenog 'partition_key'. Za naš slučaj koristimo modul od 4.

Naša sintaksa je sljedeća:

CREATE TABLE partition_table PARTICIJA glavne_tablice ZA VRIJEDNOSTI SA (MODULUS num1, REMAINDER num2);

Naše particije su sljedeće:

Za “glavnu_tablicu”, ona sadrži unose koji su prikazani u nastavku:

Za stvorene particije možemo brzo pristupiti njihovim unosima i provjeriti funkcionira li naše particioniranje.

Zaključak

PostgreSQL particije su zgodan način optimiziranja baze podataka radi uštede vremena i povećanja pouzdanosti. Detaljno smo razgovarali o particioniranju uključujući različite dostupne opcije. Štoviše, pružili smo primjere kako implementirati particije. Isprobajte ih!