Ich habe ein Legacy-Schema (Haftungsausschluss!), Das eine Hash-basierte generierte ID für den Primärschlüssel für alle Tabellen verwendet (es gibt viele). Ein Beispiel für eine solche ID ist:
922475bb-ad93-43ee-9487-d2671b886479
Es gibt keine Hoffnung, diesen Ansatz zu ändern, jedoch ist die Leistung beim Indexzugriff schlecht. Abgesehen von der Vielzahl von Gründen dies sein könnte, gibt es eine Sache , die ich bemerkte , die weniger als optimal schienen - trotz alles ID - Werte in allen vielen Tabellen genau 36 Zeichen lang sind, ist der Spalt Typ varchar(36)
, nicht char(36)
.
Würde die Änderung der Spaltentypen auf eine feste Länge erhebliche Vorteile für die Indexleistung char(36)
bieten , abgesehen von der sehr geringen Zunahme der Anzahl der Einträge pro Indexseite usw.?
Dh, sind Postgres bei Typen mit fester Länge viel schneller als bei Typen mit variabler Länge?
Bitte erwähnen Sie nicht die winzige Einsparung an Speicherplatz - das ist im Vergleich zu der Operation, die erforderlich ist, um die Änderungen an den Säulen vorzunehmen, egal.