我正在使用PHP框架CodeIgniter創建一個Web應用程序。該應用程序依賴於有關用戶的國家,地區和城市的正確信息。國家,地區,城市註冊表 - 如何管理200萬個mySQL記錄?
我目前有一個國家下拉框(從數據庫填充),一個區域下拉框(填充使用ajax取決於國家)和一個城市下拉框(jQuery自動完成使用ajax取決於國家和地區地區)。
我的問題是城市數據庫有超過200萬個條目,而且自動完成速度很慢。我在別處看到過這種類型的事情,例如。 Facebook位置自動完成速度更快的事件。
我的問題是,有什麼辦法可以加快這個過程(優化mySQL數據庫,ajax調用)以使其更快,或者有另一種方法使用Google Maps API之類的方法來實現嗎?
任何意見/意見/想法表示讚賞。
以下是一些基本定義,我的表:
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標準的列表,以填補國家和地區的表,並可以自由使用的城市數據庫爲城市表。
表中是否有任何索引?你有沒有用'EXPLAIN'運行你的查詢?你能提供查詢嗎? – Gordon 2010-11-08 10:58:44
你確定這是最方便的方法嗎?難道讓用戶進入他們的城市並在文本字段中停用幾秒鐘後顯示所有匹配的選項不是嗎?我發現地區/城市下降非常繁瑣 – 2010-11-08 11:06:34
在這個世界上有4360個城市。不知道你從哪裏得到200萬個城市。 – Yada 2010-11-08 11:16:07