У меня есть MySQL база данных около 3 миллионов записей:

Содержит информацию о географическом местоположении IP как:

И таблица определяется следующим образом:

Моя цель найти запись по произвольному IP-адресу. Я использую следующее SQL для этого (PHP синтаксис):
$n_ip = ip2long("106.87.84.64"); //or 1784108096
$res = mysqli_query($link,
"SELECT * FROM `ip2location` WHERE `ip_from`<='$n_ip' AND `ip_to`>='$n_ip' LIMIT 1");
Этот запрос, по-видимому, занимает около 4,5 секунд.
Мне было интересно, есть ли что-то, что я могу сделать для повышения производительности на нем?