Вопросы о типах в MySQL - PullRequest
       26

Вопросы о типах в MySQL

1 голос
/ 18 января 2010

Итак, я создавал таблицу для комментариев, и мне было интересно. Что было бы хорошим типом для деталей комментария? Я поставил длинный текст. Тогда зачем людям нужен varchar, если длинный текст может с этим справиться? Кроме того, какой тип я хотел бы для имен пользователей?

Какова цель «первичной» для индекса? Какова цель индекса?

Обновление: Допустим, комментарий был на самом деле рецензией.

Ответы [ 4 ]

2 голосов
/ 18 января 2010

Это правда, что TEXT может обрабатывать любой ввод, который вы поместите в поле VARCHAR или CHAR.Фактически TEXT может обрабатывать и данные, которые вы, возможно, захотите поместить в DECIMAL, INT или почти любой другой тип.Следуя этой логике, мы могли бы также сделать каждый столбец типом TEXT.

Но это было бы ошибкой.Зачем?Поскольку использование соответствующего типа столбца для ожидаемого ввода позволяет базе данных лучше оптимизировать запросы, использует меньше дискового пространства и облегчает понимание и поддержку модели данных.

В отношении вопросов: столбец имени пользователя должен использоватьVARCHAR (20), так как вы хотите и ожидаете, что большинство имен пользователей будут короткими, обычно не более 10 - 20 символов.Для колонки рецензии (например, рецензии на фильмы или рецензии на книги) будет уместен тип TEXT, поскольку рецензии могут занимать один абзац и несколько страниц.

Что касается индексов, попробуйте эту ссылку:

http://20bits.com/articles/interview-questions-database-indexes/

0 голосов
/ 18 января 2010

Посмотрите на эту веб-страницу , в ней перечислены все типы полей MySQL и описаны их свойства и отличия друг от друга.

0 голосов
/ 18 января 2010

TEXT NOT NULL. Это дает достаточно места, занимает 2 байта и обычно не создает проблем.

Относительно ТЕКСТА

При сравнении TEXT - это расширение пространства точно соответствовать сравниваемому объекту как CHAR и VARCHAR.

Для индексов по столбцам BLOB и TEXT: Вы должны указать префикс индекса длина. Для CHAR и VARCHAR, префикс длина не является обязательной. См. Раздел 7.4.2, «Индексы столбцов».

столбцы BLOB и TEXT не могут иметь Значения ПО УМОЛЧАНИЮ.

Если вы используете атрибут BINARY с Тип данных TEXT, столбец назначен двоичное сопоставление столбца набор символов.

Относительно VARCHAR:

Значения в столбцах VARCHAR: строки переменной длины. Длина можно указать как значение от 0 до 255 до MySQL 5.0.3 и 0 до 65 535 в 5.0.3 и более поздних версиях. Эффективная максимальная длина VARCHAR в MySQL 5.0.3 и более поздних версиях с учетом максимального размера строки (65 535 байт, которые распределяются между все столбцы) и набор символов б.

Больше на: http://dev.mysql.com/doc/refman/5.0/en/blob.html

0 голосов
/ 18 января 2010

Это зависит от того, что «комментарий» в вашей системе. Обычно VARCHAR довольно стандартен как для комментариев, так и для имен пользователей. Это ограничивает вас примерно 255 символами, что обычно довольно приемлемо. Если вам нужно больше символов в комментариях, вы можете увеличить его до текста, который дает вам чуть более 65 тысяч символов.

Для получения дополнительной информации см. Справочник типов строк .

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