Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Char или Varchar


Автор: S.A.G. 3.1.2007, 15:44
В базе FireBird 1.53.. или может база не имеет значения?..

Автор: qqshonok 3.1.2007, 15:50
Смотря для какого "текста"...

Автор: Rodman 3.1.2007, 15:55
если ты будешь хранить текст - то разницы не заметишь...


Разработчики утверждают, что разницы практически нет - особенности VARCHAR в том, что используется дополнительно два байта для хранения длины, а CHAR игнорирует пробелы в конце хранимой строки.

Если вы собираетесь хранить строки длиной не более 40-50 символов, то лучше использовать CHAR. Более подробно см. статью.

При передаче по сети в текущих версиях IB VARCHAR передается так-же как и CHAR (т.е. неэффективно). Исправлено в IB 5.0. 

Автор: qqshonok 3.1.2007, 16:02
http://www.mysql.ru/docs/man/CHAR.html

Автор: Romkin 5.1.2007, 01:40
Цитата(Rodman @  3.1.2007,  15:55 Найти цитируемый пост)
При передаче по сети в текущих версиях IB VARCHAR передается так-же как и CHAR (т.е. неэффективно). Исправлено в IB 5.0. 

Ничего себе текущие версии! smile 
Поясню: в прошлом веке и char и varchar передавался IB по сети целиком, то есть, с дополнением пробелами до максимальной длины. Исправлено это было в версии IB 5.6.
В Firebird 1.5 и то и другое передается по фактической длине.
Хранилось всегда это в сжатом виде в БД, так что разницы особой нет.
Рекомендую везде использовать varchar. Пожалуй, единственное исключение - коды в первичных ключах, они, как правило, имеют одинаковую небольшую длину. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)