tinytext или varchar ?

IF

else
tinytext или varchar ?

Не могу понять, какой тип использовать для хранения небольших строк (до 255 символов).
VARCHAR вроде быстрее обрабатывается и памяти занимает меньше.
Но при создании таблицы нельзя смешивать столбцы типа CHAR и VARCHAR. Если такое происходит, СУБД MySQL изменит тип столбцов согласно правилу: если в таблице присутствует хоть один столбец переменной длины, все столбцы типа CHAR приводятся к типу VARCHAR.
Что скажите?
 

Andreika

"PHP for nubies" reader
VARCHAR вроде быстрее обрабатывается
откуда такие сведения?

памяти занимает меньше.
где такое написано?

Если такое происходит, СУБД MySQL изменит тип столбцов согласно правилу
ты не понял смысл этого правила.. перечитай еще раз 7
 

kruglov

Новичок
Если по полю производится поиск и на него ставится индекс, отличный от полнотекстового, то varchar. Или если нужно строгое ограничение на длину (чтоб превышение обязательно отрезалось).

Иначе ставьте сразу mediumtext, чтоб не огорчаться, что "небольшая строка", оказавшись чуть длиннее предусмотренного, не влезла.

Я как-то хранил пароли, закодированные crypt, в varchar(40). А потом оказалось, что появился новый способ шифрования (blowfish), и пароли перестали влезать, в результате чего авторизация перестала работать. Ну я и поставил сразу mediumtext, чтоб не мучаться еще лет 30.
 

zerkms

TDD infected
Команда форума

kruglov

Новичок
zerkms
Ман это хорошо. Но там общие слова насчет сравнения char с varcharом.

Сколько % вы сэкономите, употребив text вместо varchar при средней длине строки 200 букв? 0.5%? Еще меньше?

Ну, longtext - это уж совершенно неразумный размер. А максимум для text в 64к - слишком мало. Остается mediumtext.

Хотя, longtext даже писать короче, берем ;)
 

Beavis

Banned
подниму тему... есть пара вопросов)

1. я правильно понимаю что для БД без разницы какой тип данных указать - VARCHAR(300) или VARCHAR(65536) ? ведь будет храниться два байта размера поля + сами данные? т.е. получается всегда можно указывать максимальную длинну?

2. для каких целей тогда целесообразно использовать тип TEXT, если у него столько недостатков по сравнению с VARCHAR?
 
Сверху