Мы работаем с Postgres 8.3.3, и документация (http://www.postgresql.org/docs/8.3/static/datatype-character.html) оставляет мне несколько вопросов о том, как распределено хранилище.
Для целей этого обсуждения я бынравится придерживаться предположения, что символ = 1 байт.
Я понимаю, что символы (n) пустые, так что у вас всегда хранится n байтов.
Если длина вашего символа (n)> 126 символову вас есть служебная информация 4 байта (предположительно для хранения длины), в противном случае служебная информация составляет 1 байт.
Мне интересно, что происходит с varchar (n).
Если яиспользуйте varchar (255) и сохраните в нем 4-символьную строку, есть ли у меня 4 байта для строки и 4-байтовые служебные данные, или у меня есть только один байтовый заголовок, пока я не достигну ограничения в 126 символов?Гуглил и нигде не могу найти это документально.
Есть мысли?