Общий совет, данный в postgres docs (прочитайте совет) , заключается в том, что поля переменной длины часто работают лучше, так как это приводит к меньшему количеству данных, поэтому таблица помещается в меньшие дисковые блоки и занимает меньше местакэш-память.Современные процессоры намного быстрее, чем память и диски, поэтому затраты на поля переменной длины стоят уменьшения на ввод-вывод.
Обратите внимание, что postgresql хранит значения NULL в растровом изображении в начале строки и пропускает поле, если значение равно NULL.Поэтому любой обнуляемый столбец имеет переменную ширину.То, как postgresql хранит эти данные ( Макет страницы базы данных ), предполагает, что получение последнего столбца будет медленнее, чем первого столбца.Но это, вероятно, окажет заметное влияние только в том случае, если у вас много столбцов, и данные для начала были в основном в кеше.В противном случае диск io будет доминирующим фактором.