Tüm tablolar için birincil anahtar için hash tabanlı oluşturulan bir kimlik kullanan eski bir şema (sorumluluk reddi!) Var. Böyle bir kimliğin bir örneği:
922475bb-ad93-43ee-9487-d2671b886479
Bu yaklaşımı değiştirmenin olası bir umudu yoktur, ancak indeks erişimi ile performans düşüktür. Kenara bu olabilir nedenlerinden sayısız ayarlama, daha az optimal olmanın gibiydi fark ettim bir şey var - uzunluğunda tam 36 karakter olmak tüm birçok tablolardaki tüm id değerlerinin rağmen sütun türüdür varchar(36)
, değil char(36)
.
Sütun tiplerini sabit uzunlukta değiştirmek, indeks sayfası başına giriş sayısındaki çok küçük bir artışın ötesinde, char(36)
herhangi bir önemli endeks performansı avantajı sunar mı?
Yani, postgresler sabit uzunluklu tiplerle uğraşırken değişken uzunluklu tiplerden çok daha hızlı performans gösterir mi?
Lütfen eksi depolama tasarrufundan bahsetmeyin - bu, sütunlarda değişiklik yapmak için gereken ameliyatla karşılaştırıldığında önemli olmayacaktır.