Каково различие между VARCHAR (255) и строковыми типами TINYTEXT в MySQL?

Каково различие между VARCHAR (255) и строковыми типами TINYTEXT в MySQL?

Каждый из них позволяет снабжать строки максимальной длиной 255 символов. Требования устройства хранения данных являются также тем же. Когда я должен предпочесть один по другому?

36
задан Peter Mortensen 18 February 2010 в 12:55
поделиться

2 ответа

Вы не можете присвоить DEFAULT значение TINYTEXT и не можете создать непрефиксный индекс для последнего.

Внутри системы выделяются дополнительные объекты в памяти для работы с колонками TEXT (включая TINYTEXT), что может привести к фрагментации памяти на больших наборах записей.

Обратите внимание, что это касается только внутреннего представления колонки в наборе записей, а не того, как они хранятся на диске.

36
ответ дан 27 November 2019 в 06:12
поделиться

Значение DEFAULT нельзя присвоить TINYTEXT , и нельзя создать нефиксированный индекс для последнего.

Внутри памяти выделяются дополнительные объекты для обработки столбцов TEXT (включая TINYTEXT ), которые могут вызвать фрагментацию памяти в больших наборах записей.

Обратите внимание, что это касается только внутреннего представления столбца в наборах записей, а не того, как они хранятся на диске.

-121--1264742-

На самом деле, как я понимаю, это просто ярлык, предоставленный компилятором. Сахар синтаксиса. B.M () будет просто скомпилирован в A.M () , так как B не имеет статического M () и A имеет. Это для простого письма, больше ничего. Отсутствует «статическое наследование».

Добавлено: И требование для нового при «переопределении» просто так, чтобы вы не случайно выстрелили себе в ногу.

-121--1133839-

С помощью команды VARCHAR можно установить для столбца значение NULL или NOT NULL и установить значение DEFAULT , но не TEXT . Используйте VARCHAR , если требуется одна или обе функции, NULL и DEFAULT .

6
ответ дан 27 November 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: