Ho uno schema legacy (dichiarazione di non responsabilità!) Che utilizza un ID generato basato su hash per la chiave primaria per tutte le tabelle (ce ne sono molte). Un esempio di tale ID è:
922475bb-ad93-43ee-9487-d2671b886479
Non vi è alcuna speranza di cambiare questo approccio, tuttavia le prestazioni con accesso all'indice sono scarse. Mettendo da parte la miriade di ragioni per cui questo potrebbe essere, c'è una cosa che ho notato che sembrava non ottimale - nonostante tutti i valori id in tutti i numerosi tavoli che sono esattamente 36 caratteri di lunghezza, il tipo di colonna è varchar(36)
, non è char(36)
.
La modifica dei tipi di colonna a lunghezza fissa char(36)
offrirebbe vantaggi significativi in termini di prestazioni dell'indice, oltre al piccolissimo aumento del numero di voci per pagina dell'indice, ecc.?
Cioè Postgres ha prestazioni molto più veloci quando si tratta di tipi a lunghezza fissa che con tipi a lunghezza variabile?
Si prega di non menzionare il minuscolo risparmio di spazio di archiviazione, che non sarà rilevante rispetto all'intervento chirurgico necessario per apportare la modifica alle colonne.