Le meilleur index pour votre requête est un index composite sur (country, state, latitude, longitude) (country et state peut être échangé). MySQL a une bonne documentation sur les index multi-colonnes, qui est ici
.
Fondamentalement, latitude et longitude ne sont pas particulièrement sélectifs individuellement. Malheureusement, l'index B-tree standard ne prend en charge qu'une seule inégalité, et votre requête en a deux.
En fait, si vous souhaitez un traitement SIG, vous devez utiliser une extension spatiale de MySQL.