У меня есть таблица базы данных с zipcodes, часовыми поясами, широтой, долготой и некоторыми другими данными о местоположении, охватывающими весь мир. В таблице 8,379,070 строк. Вероятно, более половины ГБ данных. Таблица называется timezones
.Простой запрос MySQL в относительно большой таблице работает очень медленно
При попытке выполнить запрос, чтобы получить все записи, которые имеют почтовый индекс «90210», как это: select * from timezones where postcode = 90210;
запрос возвращает 28
строки, но только после того, как 7.73
секунд.
Я попытался добавить автоматически увеличивающееся первичное ключевое целое поле и индексировать таблицу по полю почтового индекса, но ничего не помогает.
На этой скорости таблица не будет использоваться. Предполагалось, что он будет использоваться для получения предложений об автоматическом заполнении поля zipcode в форме на веб-сайте.
Есть ли способ, которым я мог бы сделать это быстрее?
Это мое описание таблицы:
+-----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+----------------+ | country | varchar(45) | YES | | NULL | | | region1 | varchar(45) | YES | | NULL | | | region2 | varchar(45) | YES | | NULL | | | region3 | varchar(45) | YES | | NULL | | | locality | varchar(45) | YES | | NULL | | | postcode | varchar(45) | YES | MUL | NULL | | | latitude | varchar(45) | YES | | NULL | | | longitude | varchar(45) | YES | | NULL | | | timezone | varchar(45) | YES | | NULL | | | utc | varchar(45) | YES | | NULL | | | dst | varchar(45) | YES | | NULL | | | idx | int(11) | NO | PRI | NULL | auto_increment | +-----------+-------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
@Mihai вы имеете в виду столбцы (возвращено 28 строк) – James
Неясно, есть ли у вас индекс на почтовом индексе или нет. – e4c5
I'm [email protected]Если действительно есть индекс в почтовом индексе, он должен работать намного быстрее даже с 8 миллионами строк при этой передаче данных. Может ли показать определение таблицы? – Mihai