У меня есть устаревшая схема (отказ от ответственности!), Которая использует сгенерированный на основе хеш-кода идентификатор для первичного ключа для всех таблиц (их много). Пример такого идентификатора:
922475bb-ad93-43ee-9487-d2671b886479
Нет надежды на изменение этого подхода, однако производительность с доступом к индексу низкая. Откладывая множество причин , это может быть, есть одна вещь , которую я заметил , что , казалось , меньше оптимальной - несмотря на все значения идентификаторов во всех многих таблиц , являющихся ровно 36 символов в длину, тип столбца varchar(36)
, не char(36)
.
Принесет ли изменение типов столбцов фиксированной длины char(36)
какие-либо существенные преимущества в производительности индекса, помимо очень небольшого увеличения числа записей на страницу индекса и т. Д.?
Т.е. работает ли postgres намного быстрее при работе с типами фиксированной длины, чем с типами переменной длины?
Пожалуйста, не упоминайте о незначительной экономии памяти - это не имеет значения по сравнению с операцией, необходимой для внесения изменений в столбцы.