Разумно ли объявлять VARCHAR со значением больше 255 в MySQL? - PullRequest
8 голосов
/ 14 января 2011

Я только что заметил в документации, что в версиях выше MySQL 5.0.3 вы можете объявить varchar со значениями больше 255. В прошлом я переключал типы данных для чего-либо большего, чем 255, но мне интересно, лучше ли этопопрактикуйтесь в определении больших строковых значений с использованием varchar (1000) или любой подходящей длины.

Это также распространено и в других базах данных в настоящее время или лучше придерживаться значения 255 в качестве максимального значения и изменять типы данных, приведенные вышечто?

Ответы [ 3 ]

6 голосов
/ 14 января 2011

На мой взгляд, я бы не хотел подходить. Если вам нужно более 255 символов, используйте TEXT для некоторых.

Обновление: Теперь VARCHAR ограничен 65535 байтами, но строка в MySQL не может содержать более 65535 байтов.

Вы должны знать, что VARCHAR и подобные поля хранятся непосредственно в вашей базе данных, когда, например, TEXT будет сохранен вне строки, почему указатель внутри строки, ссылающейся на него.

Так что, если вы хотите использовать большие VARCHAR, убедитесь, что они не будут слишком большими и не будут мешать остальным данным в строке.

Например, иметь несколько полей VARCHAR, которые могут содержать до 65 000 символов, было бы плохой идеей.

5 голосов
/ 14 января 2011

Как указывает ответ @Eric, VARCHAR хранятся в таблице, а TEXT хранятся в отдельном файле - единственное действительно важное замечание, которое вы должны учитывать при разработке структуры таблицы, - это ограничение размера строки (MySQL ограничивает каждая строка / запись до 65 КБ).

Я предлагаю вам использовать VARCHAR для «однострочников» - всего, что имеет текстовый ввод в качестве источника данных.

5 голосов
/ 14 января 2011

Столбец VARCHAR ограничен 65 535 байтами, что не всегда означает 65 535 символов в зависимости от того, какой набор символов вы используете.

Если вы используете набор символов latin1, который составляет один байт на символ, вы не столкнетесь с какими-либо проблемами, поскольку длина строки совпадает с объемом требуемой памяти.

Если вы используете набор символов, в котором хранятся многобайтовые символы, вы можете установить только ту длину, которая будет позволять набор символов.Например, максимальная длина набора символов utf8 может составлять 21 844 символа.

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