我有一个非常大的表(450万条记录),并且在每条记录上我都有一个带有IP的列和另一列(空的),我应该为该IP写入该国家/地区。我还有另一个表格,其中包含特定范围的IP范围和国家/地区,因此我可以知道哪个国家/地区对应于特定的IP。到目前为止,我正在使用以下代码:
UPDATE table1
INNER JOIN ipcountry ON INET_ATON(table1.clientIp) > INET_ATON(ipcountry.start)
SET
table1.country = ipcountry.country
WHERE
INET_ATON(table1.clientIp) > INET_ATON(ipcountry.start)
AND
INET_ATON(table1.clientIp) < INET_ATON(ipcountry.end)
AND
table1.country = ''
通过使用此代码,我每分钟更新300行(这是缓慢的方式)。任何人都可以推荐我更快的方式或者可以解释为什么这么慢?