Không chắc tại sao, nhưng việc thêm thứ tự theo mệnh đề và giới hạn vào truy vấn dường như luôn dẫn đến lần truy cập chỉ mục và thực thi trong vài mili giây thay vì vài giây.
explain select * from geo_ip where 2393196360 between start_ip and end_ip order by start_ip desc limit 1;
+----+-------------+--------+-------+-----------------+----------+---------+------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+-------+-----------------+----------+---------+------+--------+-------------+
| 1 | SIMPLE | geo_ip | range | start_ip,end_ip | start_ip | 4 | NULL | 975222 | Using where |
+----+-------------+--------+-------+-----------------+----------+---------+------+--------+-------------+
Điều này là đủ tốt đối với tôi bây giờ, mặc dù tôi rất muốn biết lý do đằng sau lý do tại sao trình tối ưu hóa quyết định không sử dụng chỉ mục trong trường hợp khác.