PostgreSQL-i partitsioonide õpetus

Postgresql I Partitsioonide Opetus



Iga andmebaasi puhul on jõudlus üks mõõdik, millega tuleb tõhusa usaldusväärsuse tagamiseks tähelepanu pöörata, eriti kui tegemist on suurte andmetega. PostgreSQL-iga peate looma tabelipartitsioonid, et säästa aega ja ressursse, mis on vajalikud tabeli skannimiseks kirje otsimise ajal. Kui jagate suure tabeli väiksemateks osadeks, on vaja vähem mäluvahetust ja teie rakendus töötab paremini, kuna see säästab andmebaasitoiminguid.

See postitus hõlmab PostgreSQL-i partitsiooni. Arutame erinevaid partitsioonivalikuid, mida saate kasutada, ja toome näiteid, kuidas neid paremaks mõistmiseks kasutada.

Kuidas luua PostgreSQL-i partitsioone

Iga andmebaas võib sisaldada arvukalt mitme kirjega tabeleid. Lihtsaks haldamiseks peaksite tabelid jagama, mis on suurepärane ja soovitatav andmelao rutiin andmebaasi optimeerimiseks ja töökindluse suurendamiseks. Saate luua erinevaid partitsioone, sealhulgas loendit, vahemikku ja räsi. Arutame igaüks üksikasjalikult.







1. Loetelu partitsioonid

Enne mis tahes partitsioonide kaalumist peame looma tabeli, mida partitsioonide jaoks kasutame. Tabeli loomisel järgige kõigi partitsioonide jaoks etteantud süntaksit:



CREATE TABLE tabeli_nimi(veeru1 andmetüüp, veeru2 andmetüüp) PARTITSIOON BY (partitsiooni_võti);

'Tabeli_nimi' on teie tabeli nimi koos erinevate tabeli veergude ja nende andmetüüpidega. 'Partition_key' jaoks on see veerg, mille järgi partitsioonid tehakse. Näiteks näitab järgmine pilt, et lõime kolme veeruga tabeli „kursused”. Veelgi enam, meie partitsioonitüüp on LIST ja me valime oma partitsioonivõtmeks teaduskonna veeru:







Kui tabel on loodud, peame looma erinevad partitsioonid, mida vajame. Selleks jätkake järgmise süntaksiga:

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

Näiteks näitab järgmise pildi esimene näide, et lõime partitsioonitabeli nimega 'Fset', mis sisaldab kõiki väärtusi veerus 'faculty', mille valisime partitsioonivõtmeks ja mille väärtus on 'FSET'. Kasutasime sarnast loogikat kahe teise loodud partitsiooni puhul.



Kui teil on partitsioonid, saate sisestada väärtused meie loodud põhitabelisse. Iga sisestatud väärtus sobitatakse valitud partitsioonivõtme väärtuste alusel vastava partitsiooniga.

Kui loetleme kõik põhitabelis olevad kirjed, näeme, et selles on kõik meie sisestatud kirjed.

Kontrollimaks, kas oleme partitsioonid edukalt loonud, kontrollime kirjeid igas loodud partitsioonis.

Pange tähele, kuidas igas jaotatud tabelis on ainult kirjed, mis vastavad partitsioonimisel määratletud kriteeriumidele. Nii toimib loendi alusel jaotamine.

2. Vahemiku eraldamine

Teine partitsioonide loomise kriteerium on suvandi RANGE kasutamine. Selleks peame määrama vahemiku jaoks kasutatavad algus- ja lõpuväärtused. Selle meetodi kasutamine on ideaalne kuupäevadega töötamisel.

Selle süntaks põhitabeli loomiseks on järgmine:

CREATE TABLE tabeli_nimi(veerg1 andmetüüp, veerg2 andmetüüp) PARTITSIOON VALIKKU ALUS (partitsiooni_võti);

Lõime tabeli 'cust_orders' ja määrasime selle kasutama kuupäeva 'partition_keyna'.

Sektsioonide loomiseks kasutage järgmist süntaksit:

CREATE TABLE partition_table PARTITSIOON peatabelist VÄÄRTUSTE JAOKS ALATES (algusväärtus) KUNI (lõppväärtus);

Määrasime oma partitsioonid töötama kord kvartalis, kasutades veergu 'kuupäev'.

Pärast kõigi partitsioonide loomist ja andmete sisestamist näeb meie tabel välja järgmine:

Kui kontrollime loodud partitsioonide kirjeid, veendume, et meie partitsioonid toimivad ja meil on ainult meie määratud partitsioonikriteeriumide kohased kirjed. Kõik uued kirjed, mille oma tabelisse lisate, lisatakse automaatselt vastavasse partitsiooni.

3. Räsipartitsioonid

Viimane partitsioonikriteerium, mida arutame, on räsi kasutamine. Loome kiiresti põhitabeli, kasutades järgmist süntaksit:

CREATE TABLE tabeli_nimi(veeru1 andmetüüp, veeru2 andmetüüp) PARTITSIOON HASH-i järgi (partitsiooni_võti);

Räsiga partitsioonides peate esitama mooduli ja jäägi, read, mis jagatakse teie määratud partitsiooni_võtme räsiväärtusega. Meie puhul kasutame moodulit 4.

Meie süntaks on järgmine:

CREATE TABLE partitsiooni_tabel PARTITSIOON OF main_table FOR VALUES WITH (MODULI number1, REMAINDER number2);

Meie vaheseinad on järgmised:

Tabeli 'main_table' jaoks sisaldab see kirjeid, mis on näidatud järgmises:

Loodud partitsioonide jaoks pääseme nende kirjetele kiiresti juurde ja kontrollime, kas meie partitsioonid toimivad.

Järeldus

PostgreSQL-i partitsioonid on mugav viis andmebaasi optimeerimiseks, et säästa aega ja suurendada töökindlust. Arutasime partitsioonide jaotamist üksikasjalikult, sealhulgas erinevaid saadaolevaid valikuid. Lisaks esitasime näiteid partitsioonide rakendamise kohta. Proovige neid!