Когда использовать varchar для числовых данных в таблицах InnoDB MySQL - PullRequest
1 голос
/ 06 октября 2011

При использовании MySQL, было бы целесообразно использовать текстовое поле (varchar, text и т. Д.) Вместо числового поля (int, float и т. Д.), Даже если все данные, которые нужно сохранить, являются числовыми?

Например, было бы лучше, быстрее или эффективнее хранить данные с 5-значным почтовым индексом в 5-символьном поле 'varchar', а не в явно числовом поле?

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

Я использую InnoDB, если нужно.

РЕДАКТИРОВАТЬ: я использую почтовый индекс в качестве примера выше, но «в целом», когда следует выбрать текстовый тип данных вместо числового типа данных, когда все данные, которые будут сохранены, являются числовыми данными.

Ответы [ 2 ]

4 голосов
/ 06 октября 2011

Зависит от того, как вы используете данные.Для почтовых индексов я бы использовал VARCHAR - просто потому, что он является частью адреса и не будет использовать его для расчетов.Также вы можете включить другие страны в будущем (в Великобритании у нас есть почтовые индексы в буквенно-цифровом формате).

1 голос
/ 06 октября 2011

Ответ Эда в значительной степени охватывает все, как правило:

  • не храните числовые значения в столбцах varchar - если не существует вероятность того, что другие символы придется хранить (примерыпочтовые индексы и номера телефонов)

Когда вам нужны вычисления / сравнения сохраненных значений, всегда используйте числовые типы данных (в сравнении строк 2 больше 10)

...