Я создаю веб-приложение, используя PHP-фреймворк CodeIgniter.Приложение опирается на правильную информацию о стране, регионе и городе пользователя.
В настоящее время у меня есть форма регистрации с раскрывающимся окном страны (заполняется из базы данных), раскрывающимся окном региона (заполняется с помощью ajax в зависимости от страны) и раскрывающимся окном города (автозаполнение jquery с использованием ajax в зависимости отстрана и регион).
Моя проблема в городской базе данных, содержащей более 2 миллионов записей, и ее автозаполнение выполняется довольно медленно.Я видел такие вещи, например, в других местах.События Facebook, где автозаполнение для местоположения намного быстрее.
Мой вопрос: есть ли способ ускорить этот процесс (оптимизировать базу данных MySQL, вызовы ajax), чтобы ускорить его, или есть другой способ сделать это, используя что-то вроде API Карт Google?
Любые мнения / комментарии / идеи приветствуются.
Вот основные определения для моих таблиц:
City:
countryid, char(2)
country, varchar(100)
Region:
countryid, char(2)
regionid, varchar(2)
regionName, varchar(50)
City:
cityid, int
countryid, char(2)
regionid, varchar(2)
asciName, varchar(100)
isoName, varchar(200)
population, int
long, float
lat, float
Я использовал стандартные списки ISO для заполнения таблиц стран и регионов,и свободно доступная база данных города для таблицы city.