Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi · Oppitunti

Osioiden karsinta ja poissulkeminen

Syventykää siihen, miten optimoija käyttää osioavaimia epäolennaisten osioiden poissulkemiseen ja vähentää merkittävästi skannattavan tiedon määrää.

Oppitunti 3/411 vaihetta

Osioiden karsinta ja poissulkeminen on ilmainen Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.

Mitä osioiden karsinta on

Tervetuloa tutustumaan PostgreSQL:n tärkeään optimointitekniikkaan: osioiden karsintaan. Sen avulla tietokanta ohittaa älykkäästi niiden osioiden tarkistamisen, jotka eivät voi sisältää kyselyn etsimiä tietoja.

Ajattele sitä kirjahyllyjen suodattamisena: jos etsit vuonna 2023 julkaistua kirjaa, et tarkistaisi hyllyjä, joissa lukee ”1990–1999” tai ”2000–2010”.

Miten optimoija toimii

Kun suoritat kyselyn osioidulle taululle, PostgreSQL:n kyselysuunnittelija tutkii WHERE-lausekkeen. Se vertaa kyselyn ehtoja taulun osioiden määrityksiin.

Jos kyselyn ehdot takaavat, etteivät tietyt osiot voi sisältää yhtäkään osuvaa riviä, optimoija poistaa nämä osiot tarkistussuunnitelmasta. Näin levyltä luettavan datan määrä pienenee huomattavasti.

Karsinta alueosioilla

Osioiden karsinta näkyy selvimmin alueen perusteella osioiduissa tauluissa, erityisesti kun osiointi perustuu päivämäärään tai aikaleimaan. Jos sinulla on esimerkiksi kuukausittain osioitu taulu ja haet tietoja tietyltä viikolta, vain kyseinen kuukausiosio tai kyseiset kuukausiosiot tarkistetaan.

Tämä on erittäin tehokasta aikasarjadataa käsiteltäessä, koska kyselyt kohdistuvat usein tiettyihin ajanjaksoihin.

Esittely: alueiden karsinta käytännössä

Luodaan yksinkertainen alueen perusteella osioitu taulu ja katsotaan, miten EXPLAIN näyttää karsinnan. Osioimme taulun sarakkeen sale_date perusteella.

Huomaa, että EXPLAIN-tuloste näyttää tarkistuksen vain relevantille osiolle, ei muille osioille.

CREATE TABLE sales (
    sale_id INT,
    sale_date DATE,
    amount NUMERIC
) PARTITION BY RANGE (sale_date);

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

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

INSERT INTO sales VALUES (1, '2023-01-15', 100);
INSERT INTO sales VALUES (2, '2023-04-20', 200);

EXPLAIN SELECT * FROM sales WHERE sale_date = '2023-01-15';

Karsinta luettelo-osioilla

Osioiden karsinta toimii tehokkaasti myös luettelon perusteella osioiduissa tauluissa. Jos taulu on osioitu erillisten arvojen, kuten alueen tai tilakoodin, perusteella ja kysely suodattaa tietyn arvon mukaan, vain vastaava osio tarkistetaan.

Tämä on hyödyllistä, kun haet usein tiettyihin luokkiin tai ryhmiin liittyviä tietoja.

Esittely: esimerkki luetteloiden karsinnasta

Tässä on esimerkki luettelo-osioidusta taulusta, jonka osiointi perustuu sarakkeeseen region. Tarkastele EXPLAIN-tulostetta ja huomaa, että vain osio ”North” tarkistetaan.

CREATE TABLE products (
    product_id INT,
    region TEXT,
    price NUMERIC
) PARTITION BY LIST (region);

CREATE TABLE products_north PARTITION OF products
FOR VALUES IN ('North');

CREATE TABLE products_south PARTITION OF products
FOR VALUES IN ('South');

INSERT INTO products VALUES (101, 'North', 50.00);
INSERT INTO products VALUES (102, 'South', 75.00);

EXPLAIN SELECT * FROM products WHERE region = 'North';

Staattinen ja dynaaminen karsinta

PostgreSQL käyttää kahta pääasiallista karsintatyyppiä:

  • Staattinen karsinta: Tapahtuu kyselyn suunnitteluvaiheessa. Suunnittelija näkee WHERE-lausekkeen eksplisiittiset arvot ja voi poistaa osiot heti.
  • Dynaaminen karsinta: Tapahtuu kyselyn suorituksen aikana. Tätä käytetään monimutkaisemmissa tapauksissa, kuten silloin, kun osioavain suodatetaan alikyselyn tuloksen tai liitoksen parametrin perusteella. Tietokanta määrittää tarkistettavat osiot suorituksen aikana.

Milloin karsintaa ei ehkä tapahdu

Vaikka osioiden karsinta on tehokasta, se ei aina ole mahdollista:

  • Monimutkaiset lausekkeet: Jos WHERE-lausekkeessa käytetään funktiota tai monimutkaista lauseketta osioavaimella (esimerkiksi EXTRACT(MONTH FROM sale_date) = 1).
  • Suodatus muun kuin osioavaimen perusteella: Jos kysely suodattaa vain sarakkeita, jotka eivät kuulu osioavaimeen, kaikki osiot tarkistetaan.
  • Liitokset: Liitoksiin liittyvä karsinta voi olla hankalampaa, etenkin jos liitosehto ei liity suoraan osioavaimeen tai jos arvot eivät ole tiedossa ennen suoritusta.

Karsinnan tarkistaminen EXPLAIN-komennolla

Varmista osioiden karsinnan toiminta käyttämällä aina komentoa EXPLAIN (tai EXPLAIN ANALYZE). Etsi esimerkiksi seuraavanlaisia rivejä:

  • -> Partition Selector (Dyanmic Partition Pruning)
  • -> Append (partitions: 1)
  • -> Result (partitions: 1)

Oleellista on, että valittujen osioiden määrä on rajallinen eikä koko osioitua taulua tai kaikkia sen alitauluja tarkisteta.

Pikatarkistus: karsinnan hyödyt

Osioiden karsinnan ymmärtäminen on olennaista osioitujen suurten taulujen kyselyiden optimoinnissa. Testataanpa tietosi!

Osioiden karsinta hallussa!

Osaat nyt osioiden karsinnan! Ymmärrät, että se on tärkeä PostgreSQL-optimointitekniikka, joka:

  • Vähentää tarkistettavan datan määrää huomattavasti.
  • Toimii vertaamalla WHERE-lausekkeita osioiden määrityksiin.
  • On erityisen tehokas alue- ja luettelo-osioiden kanssa.
  • Voi olla staattista (suunnitteluvaiheessa tapahtuvaa) tai dynaamista (suorituksen aikana tapahtuvaa).
  • Voidaan tarkistaa komennolla EXPLAIN.

Hyödyntämällä osioiden karsintaa varmistat, että kyselysi suoritetaan mahdollisimman tehokkaasti suurilla tietojoukoilla!

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 karsinta ja poissulkeminen” ilmainen?

Kyllä – oppitunnin ”Osioiden karsinta ja poissulkeminen” 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 karsinta ja poissulkeminen”?

Syventykää siihen, miten optimoija käyttää osioavaimia epäolennaisten osioiden poissulkemiseen ja vähentää merkittävästi skannattavan tiedon määrää. 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 3/4.

Kuinka kauan ”Osioiden karsinta ja poissulkeminen”-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