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ää.
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 (esimerkiksiEXTRACT(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!
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
- Kyselyiden optimointi osioinnilla
- Osioiden liittäminen ja irrottaminen
- Osioiden karsinta ja poissulkeminen
- Osioittaiset liitokset ja aggregoinnit