MySQL-поле для текста - PullRequest
0 голосов
/ 05 мая 2011

Мне нужно поле в моей таблице для хранения текста.Ограничение для текста - 300 символов.

Какой вариант лучше всего выбрать: varchar (300) или text?

Ответы [ 3 ]

1 голос
/ 05 мая 2011

Используйте VARCHAR(300) - если спецификация требует ограничения в 300 символов, вы не хотите поддерживать это. Мне придется выкопать мой ответ, но кто-то сообщил о существенном улучшении, перенеся свои столбцы TEXT в VARCHAR.

1 голос
/ 05 мая 2011

столбцы VARCHAR и TEXT очень похожи. руководство гласит:

В большинстве случаев вы можете рассматривать столбец BLOB как столбец VARBINARY, который может быть настолько большим, насколько вам нравится. Аналогично, вы можете рассматривать столбец TEXT как столбец VARCHAR.

Вот несколько отличий:

  1. столбцы ТЕКСТ в конце заполнены пробелами для целей индексации
  2. Столбцы TEXT не могут иметь значения по умолчанию
  3. Столбцы VARCHAR имеют только 1 байт служебной информации, если количество байтов, необходимых для текста, меньше 256. (Количество байтов, необходимых для конкретного текста, зависит от кодировки.) Столбцы TEXT всегда имеют 2 байта служебной информации.
  4. Весь текст в столбцах VARCHAR считается с пределом строки в 65 535 байтов. Текст столбцов TEXT хранится отдельно и не считается с этим пределом.
1 голос
/ 05 мая 2011

если у вас есть какие-либо причины беспокоиться о памяти, varchar будет выделять только использованную память. Я не уверен, как text делает это, но я бы использовал varchar (300)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...