Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi · Oppitunti

Osioiden liittäminen ja irrottaminen

Oppikaa siirtämään tietoja tehokkaasti osioituihin tauluihin ja niistä pois ATTACH PARTITION- ja DETACH PARTITION -komennoilla.

Oppitunti 2/411 vaihetta

Osioiden liittäminen ja irrottaminen on ilmainen Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-kurssilla on yhteensä 4 oppituntia.

Siirrä dataa tehokkaasti

PostgreSQL:n osioidut taulut ovat tehokas tapa hallita suuria tietojoukkoja. Mutta miten käsittelet dataa, jota täytyy lisätä osioihin tai poistaa niistä?

Tässä oppitunnissa esitellään ATTACH PARTITION- ja DETACH PARTITION-komennot. Näiden tärkeiden komentojen avulla voit siirtää dataa tehokkaasti osioituihin tauluihin ja niistä pois mahdollisimman vähäisin häiriöin.

DETACH PARTITION -komento

DETACH PARTITION -komennolla olemassa oleva osio irrotetaan sen emo-osiotaulusta. Kun osio irrotetaan, siitä tulee itsenäinen tavallinen taulu.

  • Syntaksi: ALTER TABLE parent_table DETACH PARTITION child_table;
  • Mihin sitä käytetään? Vanhojen tietojen arkistointiin, tietyn osion ylläpitotoimiin tai tietojen siirtämiseen toiselle tallennustasolle.

Pääosioitu taulu on edelleen käytettävissä kyselyihin tämän toiminnon aikana.

Irrottaminen arkistointia varten

Oletetaan, että sinulla on kuukausittain osioitu sales-taulu. Vuoden kuluttua saatat haluta arkistoida vanhimmat kuukaudet aktiivisen tietojoukon koon pienentämiseksi.

Sen sijaan että poistaisit tiedot, mikä voi olla hidasta ja kuluttaa paljon resursseja, voit irrottaa vanhan osion. Tällöin siitä tulee erillinen taulu, jonka voit siirtää, pakata tai poistaa vaikuttamatta päätauluun sales.

Irrottaminen käytännössä

Katsotaan, miten DETACH PARTITION toimii käytännössä. Luomme osioidun taulun, lisäämme siihen osion, lisäämme dataa ja irrotamme osion lopuksi.

Suorituksen jälkeen kokeile konsolissasi komentoja SELECT * FROM sales; ja SELECT * FROM sales_2023_q1; nähdäksesi vaikutuksen.

CREATE TABLE sales (
    sale_id SERIAL,
    sale_date DATE,
    amount DECIMAL(10, 2)
) PARTITION BY RANGE (sale_date);

CREATE TABLE sales_2023_q1 PARTITION OF sales
FOR VALUES FROM ('2023-01-01') TO ('2023-04-01');

INSERT INTO sales (sale_date, amount) VALUES ('2023-02-15', 100.00);

ALTER TABLE sales DETACH PARTITION sales_2023_q1;

ATTACH PARTITION -komento

ATTACH PARTITION toimii päinvastoin: sillä olemassa oleva itsenäinen taulu lisätään osioidun taulun uudeksi osioksi.

  • Syntaksi: ALTER TABLE parent_table ATTACH PARTITION child_table FOR VALUES FROM (...) TO (...);
  • Mihin sitä käytetään? Suurten datamäärien lataamiseen kerralla, uusien aikavälien lisäämiseen tai ulkoisista lähteistä peräisin olevan datan integrointiin.

Liitettävän taulun skeeman on vastattava emotaulun skeemaa (sarakkeet, tietotyypit ja NOT NULL -rajoitteet).

Liittäminen uuden datan yhteydessä

Yleinen ATTACH PARTITION-komennon käyttötapaus on suurten uusien datamäärien lataaminen.

Sen sijaan että lisäisit miljoonia rivejä suoraan osioituun tauluun, mikä voi lukitusten ja indeksien päivitysten vuoksi olla hidasta, voit toimia näin:

  1. Luo uusi tyhjä taulu, jolla on sama skeema.
  2. Lataa kaikki uusi data tähän väliaikaiseen tauluun.
  3. Kun data on ladattu ja tarkistettu, liitä tämä taulu pääosioidun taulun uudeksi osioksi.

Tämä minimoi päätaulun käyttökatkot.

Liittäminen käytännössä

Havainnollistetaan ATTACH PARTITION -komennon käyttöä. Luomme osioidun taulun, sitten erillisen taulun, lataamme siihen dataa ja liitämme sen lopuksi uudeksi osioksi.

Suorituksen jälkeen kokeile konsolissasi komentoa SELECT * FROM sales_main; varmistaaksesi, että data kuuluu nyt osioituun tauluun.

CREATE TABLE sales_main (
    sale_id SERIAL,
    sale_date DATE,
    amount DECIMAL(10, 2)
) PARTITION BY RANGE (sale_date);

CREATE TABLE sales_2024_q1_temp (
    sale_id SERIAL,
    sale_date DATE,
    amount DECIMAL(10, 2)
);

INSERT INTO sales_2024_q1_temp (sale_date, amount) VALUES ('2024-03-10', 250.50);

ALTER TABLE sales_main ATTACH PARTITION sales_2024_q1_temp
FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');

ATTACH/DETACH-komentojen hyödyt

Nämä komennot tarjoavat merkittäviä etuja suurten osioitujen taulujen hallintaan:

  • Käyttökatkottomat toiminnot: Irrottaminen ja liittäminen edellyttävät yleensä metatietojen muutoksia, eivät koko taulun uudelleenkirjoitusta, joten päätaulu pysyy käytettävissä.
  • Nopeampi datan lataus: Datan esilataaminen erilliseen tauluun ja sen liittäminen on suurilla datamäärillä paljon nopeampaa kuin suorat lisäykset.
  • Tehokas arkistointi ja poistaminen: Poista vanha data nopeasti aktiivisten kyselyiden piiristä irrottamalla osio ja käsittele itsenäinen taulu sen jälkeen erikseen.
  • Yksinkertaisempi ylläpito: Voit rakentaa indeksit uudelleen tai suorittaa VACUUM-komennon irrotetulle osiolle vaikuttamatta päätaulun suorituskykyyn.

Tärkeitä huomioita

Vaikka nämä komennot ovat tehokkaita, muutama asia on syytä pitää mielessä:

  • Skeeman vastaavuus: Alitaulun skeeman on vastattava täsmälleen emotaulun skeemaa, mukaan lukien sarakejärjestys, tietotyypit ja NOT NULL -rajoitteet.
  • Indeksit: Emotaulun indeksejä EI oteta automaattisesti käyttöön liitettävässä alitaulussa. Ne on luotava manuaalisesti uuteen osioon.
  • Viiteavaimet: Osioituun tauluun viittaavat viiteavainrajoitteet voivat vaikeuttaa irrottamista.
  • Datan tarkistus: Liittämisen yhteydessä PostgreSQL tarkistaa, että kaikki alitaulun data kuuluu määritettyyn osioalueeseen. Tämä tarkistus voi kestää kauan erittäin suurilla tauluilla, mutta sen voi ohittaa komennolla ATTACH PARTITION ... CONCURRENTLY (PostgreSQL 13 tai uudempi), jos datan eheys on jo varmistettu.

Pikatarkistus: osioiden hallinta

Olet oppinut, kuinka joustavia ja tehokkaita ATTACH PARTITION- ja DETACH PARTITION -komennot ovat.

Mikä seuraavista on keskeinen etu käytettäessä komentoa ALTER TABLE ... ATTACH PARTITION uuden datan lataamiseen osioituun tauluun?

Kertaus: osioinnin joustavuus

Tässä oppitunnissa tutkit, kuinka ATTACH PARTITION- ja DETACH PARTITION -komennot tarjoavat tehokkaat mekanismit datan hallintaan PostgreSQL:n osioiduissa tauluissa.

  • DETACH PARTITION mahdollistaa osion poistamisen osioidusta taulusta ja muuntaa sen itsenäiseksi tauluksi arkistointia tai ylläpitoa varten.
  • ATTACH PARTITION mahdollistaa olemassa olevan taulun lisäämisen uudeksi osioksi, mikä sopii erityisen hyvin tehokkaaseen suurten datamäärien lataamiseen.

Näiden komentojen hallitseminen on olennaista suorituskyvyn ja joustavuuden ylläpitämiseksi laajoissa osioiduissa ympäristöissä.

Aloita maksutta

Opi Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
11
Oppitunnit
44

Usein kysytyt kysymykset

Onko oppitunti ”Osioiden liittäminen ja irrottaminen” ilmainen?

Kyllä – oppitunnin ”Osioiden liittäminen ja irrottaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-kurssin, päivitä CoddyKit PROhon. Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Osioiden liittäminen ja irrottaminen”?

Oppikaa siirtämään tietoja tehokkaasti osioituihin tauluihin ja niistä pois ATTACH PARTITION- ja DETACH PARTITION -komennoilla. Harjoittelet Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Osioiden liittäminen ja irrottaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunnilla?

Kyllä. Jokainen Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kyselyiden optimointi osioinnilla
  2. Osioiden liittäminen ja irrottaminen
  3. Osioiden karsinta ja poissulkeminen
  4. Osioittaiset liitokset ja aggregoinnit
← Takaisin: Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi