Postgres Selitä kustannukset

Postgres Selita Kustannukset



Postgres on tehokas ja laajalti käytetty avoimen lähdekoodin relaatiotietokantajärjestelmä, jolla on vahva maine kestävyydestään, toimivuudestaan ​​ja suorituskyvystään.

Yksi työkaluista, jotka tekevät Postgresista pääosin vahvan suorituskyvyssä, on sen EXPLAIN-komento, joka antaa tietoja SQL-kyselyn suoritussuunnitelmasta.

Mikä on EXPLAIN-komento?

EXPLAIN-komento näyttää suoritussuunnitelman, jonka PostgreSQL-suunnittelija luo tietylle SQL-käskylle.







Tämä sisältää tiedot kunkin kyselyvaiheen suorittamisen arvioiduista kustannuksista. Näitä kustannuksia tutkimalla voimme ymmärtää, miksi kysely suoritetaan hitaasti ja kuinka se voidaan optimoida.



PostgreSQL Selitä kustannukset

Käytämme pääasiassa EXPLAIN-komentoa tietyn kyselyn tietojen hakemiseen. Komento antaa tietoja kyselystä.



Otetaan esimerkiksi kysely, joka näkyy seuraavassa:





SELECT f.title, c.name
FROM elokuvasta f
LIITY film_category fc ON f.film_id = fc.film_id
LIITY luokkaan c PÄÄLLÄ fc.luokan_id = c.luokan_id;

Jos suoritamme selityskomennon edellisessä yksinkertaisessa liitoksessa:

EXPLAIN SELECT f.title, c.name
FROM elokuvasta f
LIITY film_category fc ON f.film_id = fc.film_id
LIITY luokkaan c PÄÄLLÄ fc.luokan_id = c.luokan_id;

Meidän pitäisi saada tulos seuraavan kuvan mukaisesti:



Saatat huomata, että PostgreSQL palauttaa kunkin kyselyvaiheen arvioidut kustannukset.

  1. startup_cost – Se näyttää arvioidut kustannukset, jotka aiheutuvat toiminnon alustamisesta, ennen kuin se voi aloittaa rivien tulostamisen.
  2. total_cost – Kaikkien rivien noudon kokonaiskustannukset.
  3. Rivit – Se määrittää kyselyn palauttamien rivien arvioidun määrän.
  4. Leveys – Tämä määrittää kaikkien toiminnon palauttamien rivien keskimääräisen tavumäärän.

PostgreSQL:n kyselykustannukset on merkitty mielivaltaisina yksiköinä, jotka määritetään palvelimen kokoonpanossa asetettujen kustannusparametrien mukaan.

Näiden parametrien avain on seq_page_cost, joka määrittää sellaisen levysivun haun hinnan, joka ei ole välimuistissa.

Jos käytät pgAdminia, voit käyttää 'selitä analysointi' -ominaisuutta saadaksesi luettavamman ja paremmin esitellyn kaavion selityskomennolle. Esimerkiksi:

Voit sitten napsauttaa kutakin vaihetta nähdäksesi tilastot ja arvioidut kustannukset.

Kyselyjen optimointi kustannusten perusteella

Kun optimoit kyselyjäsi, on tärkeää ymmärtää, että alhaisemmat kustannukset merkitsevät yleensä nopeampaa toteutusta. Siksi voit muokata kyselyjäsi halvemmalla.
Tässä on muutamia huomioitavia tekijöitä:

Käytä taulukkoindeksiä – Indeksit vähentävät merkittävästi hakupohjaisten kyselyjen kustannuksia ylläpitämällä tietorakennetta, joka mahdollistaa nopeamman haun.

Käytä toimintoja ja operaattoreita viisaasti – Toimintojen ja operaattoreiden kustannusarvio ei aina ole tarkka, koska todelliset kustannukset voivat riippua suuresti tiedoista. Rajoita siten funktioiden ja monimutkaisten operaattoreiden käyttö minimiin.

Johtopäätös

Tutkimme kustannusten käsitettä PostgreSQL ANALYZE -komennossa. Keskustelimme siitä, mitä komennon tulos tarkoittaa ja kuinka kustannustulosta voidaan käyttää analysoimaan tehokkain tapa suorittaa tietty kysely.