PostgreSQL particionálási oktatóanyag

Postgresql Particionalasi Oktatoanyag



Bármely adatbázis esetében a teljesítmény egy olyan mérőszám, amelyet figyelembe kell venni a hatékony megbízhatóság érdekében, különösen, ha nagy mennyiségű adatról van szó. A PostgreSQL használatával létre kell hoznia a táblapartíciókat, hogy időt és erőforrásokat takarítson meg a tábla ellenőrzéséhez rekord keresése közben. Ha egy nagy táblát kisebb részekre oszt fel, kevesebb memóriacserére van szükség, és az alkalmazás jobban teljesít, mivel megtakarítja az adatbázis műveleteit.

Ez a bejegyzés a PostgreSQL particionálást fedi le. Megvitatjuk a használható particionálási lehetőségeket, és példákat adunk ezek használatára a jobb megértés érdekében.

PostgreSQL partíciók létrehozása

Bármely adatbázis tartalmazhat számos táblát több bejegyzéssel. Az egyszerű kezelés érdekében particionálja a táblákat, ami egy nagyszerű és ajánlott adattárházi rutin az adatbázisok optimalizálásához és a megbízhatóság elősegítéséhez. Különféle partíciókat hozhat létre, beleértve a listát, a tartományt és a hash-t. Beszéljük meg mindegyiket részletesen.







1. Particionálás listája

Mielőtt bármilyen particionálást mérlegelnénk, létre kell hoznunk a partíciókhoz használt táblát. A táblázat létrehozásakor kövesse az összes partícióra megadott szintaxist:



TÁBLÁZAT LÉTREHOZÁSA táblanév(1. oszlop adattípus, 2. oszlop adattípus) PARTITION BY (partíciókulcs);

A „tábla_neve” a táblázat neve a táblában található különböző oszlopok és azok adattípusai mellett. A „partition_key” esetében ez az oszlop, amelyen keresztül a particionálás megtörténik. Például a következő képen látható, hogy létrehoztuk a „tanfolyamok” táblázatot három oszloppal. Ezenkívül a particionálás típusa LIST, és a kar oszlopot választjuk particionálási kulcsunknak:







A tábla létrehozása után létre kell hoznunk a különböző partíciókat, amelyekre szükségünk van. Ehhez folytassa a következő szintaxissal:

TÁBLÁZAT LÉTREHOZÁSA partíciós_tábla A fő_tábla PARTÍCIÓJA FOR VALUES IN (ÉRTÉK);

Például a következő kép első példája azt mutatja, hogy létrehoztunk egy „Fset” nevű partíciós táblát, amely tartalmazza a „faculty” oszlop összes értékét, amelyet partíciós kulcsunkként választottunk, és amelynek értéke „FSET”. Hasonló logikát alkalmaztunk az általunk létrehozott másik két partíciónál is.



Miután megvan a partíció, beillesztheti az értékeket az általunk létrehozott fő táblába. Minden beszúrt érték megfeleltethető a megfelelő particionálással a kiválasztott partíciókulcs értékei alapján.

Ha felsoroljuk az összes bejegyzést a főtáblázatban, láthatjuk, hogy benne van az összes általunk beszúrt bejegyzés.

Annak ellenőrzésére, hogy sikeresen létrehoztuk a partíciókat, nézzük meg az egyes létrehozott partíciók rekordjait.

Figyelje meg, hogy az egyes particionált táblák csak azokat a bejegyzéseket tartalmazzák, amelyek megfelelnek a particionálás során meghatározott feltételeknek. Így működik a lista szerinti particionálás.

2. Tartomány particionálás

A partíciók létrehozásának másik feltétele a RANGE opció használata. Ehhez meg kell adnunk a tartomány kezdő és végértékét. Ez a módszer ideális, ha dátumokkal dolgozik.

A főtábla létrehozásának szintaxisa a következő:

CREATE TABLE táblanév(oszlop1 adattípus, oszlop2 adattípus) PARTÍCIÓ TARTOMÁNY SZERINT (partíciókulcs);

Létrehoztuk a „cust_orders” táblát, és megadtuk, hogy a dátumot használja „partition_key”-ként.

A partíciók létrehozásához használja a következő szintaxist:

TÁBLÁZAT LÉTREHOZÁSA partíciós_tábla A fő_tábla PARTÍCIÓJA ÉRTÉKEKHEZ (kezdő_érték) IG (vég_érték);

Partícióinkat negyedévente működőképesnek határoztuk meg a „dátum” oszlop használatával.

Az összes partíció létrehozása és az adatok beszúrása után a táblázatunk így néz ki:

Ha ellenőrizzük a bejegyzéseket a létrehozott partíciókban, akkor ellenőrizzük, hogy a particionálásunk működik, és csak az általunk megadott particionálási feltételeknek megfelelő rekordokkal rendelkezünk. A táblázathoz hozzáadott összes új bejegyzés automatikusan hozzáadódik a megfelelő partícióhoz.

3. Hash particionálás

Az utolsó particionálási kritérium, amelyet megvitatunk, a hash használata. Hozzuk létre gyorsan a főtáblát a következő szintaxissal:

TÁBLÁZAT LÉTREHOZÁSA táblanév(1. oszlop adattípus, 2. oszlop adattípus) PARTÍCIÓ HASH ÁLTAL (partíciókulcs);

Ha hash-sel particionál, meg kell adnia a modulust és a maradékot, a sorokat, amelyeket el kell osztani a megadott 'partition_key' hash értékével. A mi esetünkben 4-es modulust használunk.

A szintaxisunk a következő:

TÁBLÁZAT LÉTREHOZÁSA partíciós_tábla A fő_tábla PARTÍCIÓJA FOR VALUES WITH (MODULUS num1, REMAINDER num2);

Partícióink a következők:

A „main_table” a következőkben látható bejegyzéseket tartalmazza:

A létrehozott partíciók bejegyzéseihez gyorsan hozzáférhetünk, és ellenőrizhetjük, hogy a particionálásunk működik-e.

Következtetés

A PostgreSQL partíciók praktikus módja az adatbázis optimalizálásának, hogy időt takarítson meg és növelje a megbízhatóságot. Részletesen megvitattuk a particionálást, beleértve a különböző lehetőségeket. Ezenkívül példákat adtunk a partíciók megvalósítására. Próbáld ki őket!