Výkon Rozdiel medzi index na dva stĺpce vs podmienené index

0

Otázka

Mám slušne veľké postgres tabuľka s niekoľko miliárd riadkov.

Avšak tabuľky by mohli byť rozdelené do jedného stĺpca (type)

Mali by sme sa radšej:

Index s dvoma stĺpcami

create nonclustered index ix_index1 on table1(type, string_urn_id)

alebo podmienené index

create nonclustered index ix_index1_alternative on table1(string_urn_id) WHERE type = 'type1'
create nonclustered index ix_index1_alternative2 on table1(string_urn_id) WHERE type = 'type2'
create nonclustered index ix_index1_alternative3 on table1(string_urn_id) WHERE type = 'type3'
....
database-performance postgresql
2021-10-27 02:41:08
1

Najlepšiu odpoveď

1

Nie je vyhlásenie create nonclustered index v PostgreSQL.

Čo je lepšie závisí na definícii "lepšie". Z výživného hľadiska jednotného index je lepšie, pretože nebudete musieť vytvoriť nový index vždy, keď pridáte nový type.

Z výkonu perspektívu, len porovnávať reálne dáta môžu povedať. Plánovanie času zvýši s mnohými indexy, ale dotaz výkonnosť môže byť o niečo lepšie.

Ak ste oblasť tabuľka, dotaz výkon sa zníži, ale môžete to urobiť s jedným rozdelený na index string_urn_id.

2021-10-27 07:02:43

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................