SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.01.2013 22:06:59

Имя занято
Участник
Зарегистрирован: 26.10.2011
Сообщений: 17

Зачем указывать длину varchar меньше 255?

Всем привет!

Зачем нужно указывать длину ячейки varchar меньше 255-и символов, если на расход памяти это вроде как не влияет?

Неактивен

 

#2 12.01.2013 22:48:57

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Зачем указывать длину varchar меньше 255?

??? Что значит "не влияет на расход памяти"? И что за привязка такая к числу 255? В-общем, поясните свою мысль.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 12.01.2013 23:25:58

Имя занято
Участник
Зарегистрирован: 26.10.2011
Сообщений: 17

Re: Зачем указывать длину varchar меньше 255?

deadka, а что тут пояснять-то?)

Разница между ячейками CHAR(10) и VARCHAR(10) в том, что CHAR(10) всегда занимает 10 байт, даже если в ней записана только одна буква. А ячейка VARCHAR(10) будет занимать от 1-го до 11-и байт в зависимости от содержимого.
http://dev.mysql.com/doc/refman/5.6/en/char.html
Так зачем писать VARCHAR(10), если всегда можно писать VARCHAR(255) и не париться?

255 потому что:
1) до версии MySQL 5.0.3 это была максимальная длина
2) если указать больше 255-и, то к длине каждой записи будет прибавляться 2 байта вместо одного
http://dev.mysql.com/doc/refman/5.6/en/ … ments.html
3) если нужно хранить в ячейке большой текст, то для этого есть тип TEXT

Отредактированно Имя занято (12.01.2013 23:27:08)

Неактивен

 

#4 13.01.2013 00:40:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Зачем указывать длину varchar меньше 255?

Неактивен

 

#5 13.01.2013 01:08:06

Имя занято
Участник
Зарегистрирован: 26.10.2011
Сообщений: 17

Re: Зачем указывать длину varchar меньше 255?

Т. е. если таблица не MEMORY, то спокойно пишем VARCHAR(255) без долгих раздумий на тему "а сколько же максимально букв будет в породе единорога".

Неактивен

 

#6 13.01.2013 01:26:23

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Зачем указывать длину varchar меньше 255?

Технически это так, при условии, что индекс будете создавать только префиксный. С точки зрения структуры базы данных в этом решении есть недостатки. 255 - это не бесконечная длина и не подумав какие будут строки, невозможно понять, что они не превысят 255. Так как 255 будет техническим числом, оно не попадет в спецификацию продукта и не будет четко проверяться при вводе. В реальной работе кто-то использует значение больше 255 символов и потеряет часть информации.

Неактивен

 

#7 13.01.2013 20:18:09

Имя занято
Участник
Зарегистрирован: 26.10.2011
Сообщений: 17

Re: Зачем указывать длину varchar меньше 255?

Да, логично. Спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson