@ubuntu_lts

Какие значения задавать типам столбцов?

Так сложилось, что приучен, например, столбцу varchar задавать 255, если честно, то даже не знаю почему :), видел 109 задают 500 и т.д.
Ну а вот я сохраняю строку 30, какое значение задавать? И что от этого изменится? Вот я просто заранее создаю таблицу, примерно знаю какие мне столбцы нужны, есть столбцы varchar, какие значения задавать им? Каждому досконально высчитывать?
И если всем задам 255, а хранить буду строки 1, то что происходит?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@ayazer
Sr. Software Engineer
И если всем задам 255, а хранить буду строки 1, то что происходит?

varchar(255) = 1 * кол-во байт на 1 символ в выбранной кодировке + 1-2 байта технической информации
сhar(255) = 255 * кол-во байт на 1 символ в выбранной кодировке

ну и всех прочих равных, индекс по char будет процентов на 15-20 быстрее чем индекс по varchar

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

а вообще - вы можете открыть документацию mysql и все это прочитать. даже с поправкой на конкретную версию mysql которую вы используете.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы