我正在建立一个巨大的 IP 地址数据库,并附上它们的地理位置(国家、城市等)。
现在,我正在使用这个简单的数据库结构:
id || ip_addr || country || city ||
我已经开始构建它,并且已经拥有近 100 万条记录。问题是,许多地址都附加了相同的国家/地区,从数据库中获取数据变得非常慢。
我在想,如果我这样做:
国家表:
countryID || countryName ||
城市表:
cityID || cityName || countryID (for what country the city is in) ||
然后,ipTable:
id || ip_addr || countryID || cityID
它会使获取更快吗?
这种方法是否更有效(它还有其他好处)吗?还是我应该坚持我已经拥有的?