Tutorial de partiţionare PostgreSQL

Tutorial De Partitionare Postgresql



Pentru orice bază de date, performanța este o măsură care trebuie abordată pentru o fiabilitate eficientă, mai ales atunci când sunt implicate date mari. Cu PostgreSQL, trebuie să creați partițiile de tabel pentru a economisi timpul și resursele necesare pentru a scana un tabel în timp ce căutați o înregistrare. Prin împărțirea unui tabel mare în porțiuni mai mici, este nevoie de mai puțin schimb de memorie și aplicația dvs. va funcționa mai bine, deoarece economisește operațiunile bazei de date.

Această postare acoperă partiționarea PostgreSQL. Vom discuta despre diferitele opțiuni de partiționare pe care le puteți utiliza și vom oferi exemple despre cum să le folosiți pentru o mai bună înțelegere.

Cum se creează partițiile PostgreSQL

Orice bază de date poate conține numeroase tabele cu mai multe intrări. Pentru o gestionare ușoară, ar trebui să partiționați tabelele, ceea ce este o rutină grozavă și recomandată de depozit de date pentru optimizarea bazei de date și pentru a ajuta la fiabilitate. Puteți crea diferite partiții, inclusiv lista, intervalul și hash. Să discutăm fiecare în detaliu.







1. Listă de partiţionare

Înainte de a lua în considerare orice partiționare, trebuie să creăm tabelul pe care îl vom folosi pentru partiții. Când creați tabelul, urmați sintaxa dată pentru toate partițiile:



CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY (cheie_partiție);

„Nume_tabel” este numele tabelului dvs. alături de diferitele coloane pe care le va avea tabelul și tipurile de date ale acestora. Pentru „partition_key”, este coloana prin care va avea loc partiţionarea. De exemplu, următoarea imagine arată că am creat tabelul „cursuri” cu trei coloane. Mai mult, tipul nostru de partiționare este LIST și selectăm coloana facultății ca cheie de partiționare:







Odată creat tabelul, trebuie să creăm diferitele partiții de care avem nevoie. Pentru aceasta, procedați cu următoarea sintaxă:

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

De exemplu, primul exemplu din imaginea următoare arată că am creat un tabel de partiții numit „Fset” care deține toate valorile din coloana „facultate” pe care am selectat-o ​​ca cheie de partiție a cărei valoare este „FSET”. Am folosit o logică similară pentru celelalte două partiții pe care le-am creat.



Odată ce aveți partițiile, puteți introduce valorile în tabelul principal pe care l-am creat. Fiecare valoare pe care o inserați se potrivește cu partiționarea respectivă pe baza valorilor din cheia de partiție pe care ați selectat-o.

Dacă listăm toate intrările din tabelul principal, putem vedea că are toate intrările pe care le-am introdus.

Pentru a verifica dacă am creat cu succes partițiile, să verificăm înregistrările din fiecare dintre partițiile create.

Observați cum fiecare tabel partiționat conține doar intrările care corespund criteriilor care sunt definite la partiționare. Așa funcționează partiționarea după listă.

2. Partiționarea intervalului

Un alt criteriu pentru crearea partițiilor este utilizarea opțiunii RANGE. Pentru aceasta, trebuie să specificăm valorile de început și de sfârșit de utilizat pentru interval. Utilizarea acestei metode este ideală atunci când lucrați cu curmale.

Sintaxa sa pentru crearea tabelului principal este următoarea:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY RANGE (cheie_partiție);

Am creat tabelul „cust_orders” și l-am specificat pentru a folosi data ca „partition_key”.

Pentru a crea partițiile, utilizați următoarea sintaxă:

CREATE TABLE partition_table PARTIȚIA tabelului_principal PENTRU VALORI DE LA (start_value) TO (end_value);

Am definit partițiile noastre să funcționeze trimestrial folosind coloana „data”.

După crearea tuturor partițiilor și inserarea datelor, așa arată tabelul nostru:

Dacă verificăm intrările din partițiile create, verificăm că partiționarea noastră funcționează și avem doar înregistrările adecvate conform criteriilor de partiționare pe care le-am specificat. Pentru toate intrările noi pe care le adăugați în tabel, acestea sunt adăugate automat la partiția respectivă.

3. Hash Partitioning

Ultimul criteriu de partiționare pe care îl vom discuta este utilizarea hash. Să creăm rapid tabelul principal folosind următoarea sintaxă:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY HASH (cheie_partiție);

Când partiționați cu hash, trebuie să furnizați modulul și restul, rândurile urmând să fie împărțite la valoarea hash a „partition_key” specificată. Pentru cazul nostru, folosim un modul de 4.

Sintaxa noastră este următoarea:

CREATE TABLE partition_table PARTIȚIA tabelului_principal PENTRU VALORI CU (MODUL num1, REMAINDER num2);

Partițiile noastre sunt după cum urmează:

Pentru „main_table”, acesta conține intrările care sunt afișate în continuare:

Pentru partițiile create, putem accesa rapid intrările acestora și putem verifica dacă partiționarea noastră funcționează.

Concluzie

Partițiile PostgreSQL sunt o modalitate utilă de optimizare a bazei de date pentru a economisi timp și pentru a spori fiabilitatea. Am discutat în detaliu despre partiţionare, inclusiv despre diferitele opţiuni disponibile. Mai mult, am oferit exemple despre cum să implementăm partițiile. Încercați-le!