From: Rik Wasmus Date: July 13 2012 7:51am Subject: Re: why this query doesn't use index? List-Archive: http://lists.mysql.com/mysql/227815 Message-Id: <201207130951.50282.rik@grib.nl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit > can you tell me why my this query doesn't use the index? > > > mysql> explain select * from iploc where 1902800418 between start_ip > and end_ip; Hazarding a very quick guess: if this table is what I think it is (NON- overlapping IP ranges + (geo)location), you might want to try: SELECT * FROM iploc WHERE start_ip < 1902800418 ORDER BY start_ip DESC LIMIT 1 ... at least, that is how we solved our geoip-performance problems. The NON- overlappig part is crucial though. -- Rik Wasmus