Differenza di prestazioni tra indice su due colonne vs condizionale indice

0

Domanda

Ho un decentemente grande postgres tavolo con un paio di miliardi di righe.

Tuttavia la tabella potrebbe essere scandito da una colonna (type)

Dovremmo preferire:

Un indice con due colonne

create nonclustered index ix_index1 on table1(type, string_urn_id)

o un condizionale indice

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

Migliore risposta

1

Non c'è nessuna dichiarazione create nonclustered index in PostgreSQL.

Cosa c'è di meglio dipende dalla definizione di "migliore". Da una prospettiva di manutenzione, l'unico indice è migliore, perché non è necessario creare un nuovo indice ogni volta che si aggiunge un nuovo type.

Da un punto di vista delle prestazioni, solo un punto di riferimento con dati reali può dire. Il tempo di pianificazione aumenterà con molti indici, ma le prestazioni delle query può essere un po ' meglio.

Se si suddivide la tabella, una query di prestazioni a diminuire, ma si può fare con un unico indice di partizionata string_urn_id.

2021-10-27 07:02:43

In altre lingue

Questa pagina è in altre lingue

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