MaxMindからの最新データを使用して、このチュートリアルに従いました。
http://www.atomodo.com/code/how-to-really-import-the-maxmind-geoip-free-country-csv-file-into-mysql
私はテストを実行しました:
SELECT locid FROM blocks WHERE INET_ATON('174.36.207.186') BETWEEN startIPNum AND endIPNum
約5秒で12120をくれました
SELECT city FROM location WHERE locid = 12120;
ワシントンをくれた。ここで、カスタム関数(IPTOLOCID)を追加しました。次のようにテストすると、実際に高速になります。
SELECT IPTOLOCID("174.36.207.186")
.0007秒のように12120を返します。しかし、私がこれをやろうとすると:
SELECT city FROM location WHERE locID = IPTOLOCID("174.36.207.186");
mysqlがハングするだけです...私は何を間違えましたか?