我正在使用 PHP 框架 CodeIgniter 创建一个 Web 应用程序。该应用依赖于有关用户国家、地区和城市的正确信息。
我目前有一个带有国家/地区下拉框(从数据库填充)、区域下拉框(根据国家/地区使用 ajax 填充)和城市下拉框(根据国家和地区使用 ajax 自动完成的 jquery 自动完成)的注册表单).
我的问题是城市数据库有超过 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 标准列表来填充国家和地区表,并使用免费提供的城市数据库来填充城市表。
最佳答案
我会使用 www.geonames.org,它会为数据返回 json。
示例用法:
http://ws.geonames.org/searchJSON?name_startsWith=San&country=US
返回:
{"totalResultsCount":12101,"geonames":[{"countryName":"United States","adminCode1":"AL","fclName":"city, ....
不需要从您自己的数据库中提取此类数据。
关于php - 包含国家、地区、城市的注册表 - 如何管理 200 万条 mySQL 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4123186/