Mysql Datatype для US Zip (почтовые коды)

Я пишу веб-приложение, специфичное для США, поэтому формат, который другие страны используют для почтовых кодов, не важен. У меня есть список почтовых индексов, которые я пытаюсь загрузить в таблицу базы данных, которая включает

  • 5 цифр нам почтовый индекс
  • широта
  • долготы
  • классификационный код usps
  • код состояния
  • город

почтовый индекс является первичным ключом, так как это то, к чему я буду обращаться. я начал использовать среду int 5, но усекаю zip-коды, имеющие начальные нули.

я рассмотрел использование char5, но меня беспокоит повышение производительности индексации по переменной char.

поэтому мой вопрос - это то, что является лучшим типом данных mysql для хранения почтовых индексов как?

Примечание. Я видел это в нескольких других вопросах, связанных с почтовыми индексами. Меня интересуют только 5-значные почтовые индексы США. Поэтому нет необходимости принимать во внимание форматирование почтовых индексов других стран.

Ответы

Ответ 1

char (5) - правильный путь. Индексирование строк довольно быстро, особенно когда это такой небольшой набор данных.

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

Изменить для добавления: Проверьте это по уважительным причинам, почему вы не используете номера для нечетно важных данных: Полезно ли использовать целочисленный столбец для хранения почтовых индексов США в базе данных?

Ответ 2

идите со своим средним INT (5) ZEROFILL, он должен добавить для вас основные нули. Не нужно влиять на индекс и производительность по проблеме форматирования.

Ответ 3

Если он делает это Char (6), он также может обрабатывать канадские почтовые коды.

Если вы считаете, что существует не более 100 000 5-значных почтовых индексов и сколько места потребуется, даже если вы сделали всю резидентную память таблицы, нет причин не делать этого.