Postgres explică costul

Postgres Explica Costul



Postgres este un sistem de baze de date relaționale open-source puternic și utilizat pe scară largă, cu o reputație puternică pentru robustețe, funcționalitate și performanță.

Unul dintre instrumentele care fac ca Postgres să fie predominant puternic în performanță este comanda sa EXPLAIN, care oferă detalii despre planul de execuție al unei interogări SQL.

Ce este comanda EXPLAIN?

Comanda EXPLAIN afișează planul de execuție pe care planificatorul PostgreSQL îl generează pentru o anumită instrucțiune SQL.







Aceasta include informații despre costurile estimate ale efectuării fiecărui pas de interogare. Examinând aceste costuri, putem înțelege de ce o interogare rulează lent și cum să o optimizăm.



PostgreSQL Explicați costul

Folosim în principal comanda EXPLAIN pentru a prelua informații despre o anumită interogare. Comanda afișează câteva informații despre interogare.



Luați de exemplu interogarea care este afișată în continuare:





SELECTează f.titlu, c.nume
DIN filmul f
JOIN film_category fc ON f.film_id = fc.film_id
JOIN categoria c ON fc.category_id = c.category_id;

Dacă rulăm comanda explic pe îmbinarea simplă anterioară:

EXPLAIN SELECT f.titlu, c.nume
DIN filmul f
JOIN film_category fc ON f.film_id = fc.film_id
JOIN categoria c ON fc.category_id = c.category_id;

Ar trebui să obținem rezultatul așa cum se arată în următoarele:



Este posibil să observați că pentru fiecare pas de interogare, PostgreSQL returnează costul estimat al acelei interogări.

  1. startup_cost – Afișează costul estimat pentru inițializarea operației înainte de a putea începe să scoată rândurile.
  2. cost_total – Costul total pentru preluarea tuturor rândurilor.
  3. Rânduri – Determină numărul estimat de rânduri care sunt returnate de interogare.
  4. Lățimea – Aceasta determină numărul mediu de octeți din toate rândurile care sunt returnate de operație.

Costurile de interogare în PostgreSQL sunt notate în unități arbitrare care sunt determinate de parametrii de cost care sunt setați în configurația serverului.

Cheia acestor parametri este seq_page_cost, care stabilește costul preluării unei pagini de disc care nu este în cache.

Dacă sunteți pe pgAdmin, puteți utiliza caracteristica „explain analysis” pentru a obține o diagramă mai lizibilă și mai bine prezentată pentru comanda explic. De exemplu:

Puteți apoi să faceți clic pe fiecare pas pentru a vedea statisticile și costurile estimate.

Optimizarea interogărilor pe baza costului

Atunci când vă optimizați interogările, este esențial să înțelegeți că costul mai mic înseamnă de obicei o execuție mai rapidă. Prin urmare, vă puteți modifica interogările la un cost mai mic.
Iată câțiva factori de luat în considerare:

Utilizați indici de tabel – Indexurile reduc semnificativ costul interogărilor bazate pe căutare prin menținerea unei structuri de date care permite o căutare mai rapidă.

Folosiți Funcțiile și Operatorii cu înțelepciune – Estimarea costurilor pentru funcții și operatori nu este întotdeauna exactă, deoarece costul real poate depinde în mare măsură de datele specifice. Prin urmare, limitați utilizarea funcțiilor și a operatorilor complexi la minimum.

Concluzie

Am explorat conceptul de costuri într-o comandă PostgreSQL ANALYZE. Am discutat ce înseamnă ieșirea comenzii și cum să folosim rezultatul costului pentru a analiza cel mai eficient mod de a rula o anumită interogare.