Najlepszym indeksem dla Twojego zapytania jest indeks złożony dla (country, state, latitude, longitude) (country i state można zamienić). MySQL ma dobrą dokumentację dotyczącą indeksów wielokolumnowych, czyli tutaj
.
Zasadniczo latitude i longitude nie są szczególnie selektywne indywidualnie. Niestety, standardowy indeks B-drzewa obsługuje tylko jedną nierówność, a zapytanie ma dwie.
Właściwie, jeśli chcesz przetwarzać GIS, powinieneś użyć przestrzennego rozszerzenia MySQL.