eduardweb.
PostgreSQLIntermediar#tip#performance

PostgreSQL — pe ce coloane să pui index (și pe ce nu)

De Eduard Negru, 21 apr. 2026 · 8 vizualizări · 3 like-uri

Postat acum 1 zi
sql
-- DA — coloane folosite în WHERE cu multă cardinalitate
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_posts_author_created ON posts(author_id, created_at DESC);

-- NU — coloane boolean sau cu puține valori distincte (folosește partial index)
CREATE INDEX idx_posts_published ON posts(published) WHERE published = true;

-- Rapid lookup pentru text search
CREATE INDEX idx_posts_title_trgm ON posts USING GIN (title gin_trgm_ops);

Check list simplu

Pune index dacă:

  • Folosești coloana în WHERE, JOIN ON, ORDER BY
  • Tabelul are peste ~10.000 de rânduri
  • Coloana are multe valori distincte (high cardinality)

NU pune index dacă:

  • Tabelul e mic (<1.000 rânduri — seq scan e la fel de rapid)
  • Coloana e boolean sau enum cu 2-3 valori (folosește partial index)
  • Faci mai multe INSERT-uri decât SELECT-uri

Verificare

EXPLAIN ANALYZE SELECT * FROM posts WHERE author_id = $1;

Dacă vezi Seq Scan pe un tabel mare → lipsește un index. Dacă vezi Index Scan → e ok.

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

Doar membrii comunității pot lăsa comentarii.