Baza danych: najlepszy sposób na zapytanie o dane lokalizacji geograficznej?

Mam bazę danych MySQL. Przechowuję domy w bazie danych i wykonuję dosłownie tylko jedno zapytanie do bazy danych,ale muszę wykonać to zapytanie bardzo szybkoi to jest, aby zwrócić wszystkie domy w kwadratowym polu geo szerokości i długości geograficznej.

SELECT * FROM homes 
WHERE geolat BETWEEN ??? AND ???
AND geolng BETWEEN ??? AND ???

Jak najlepiej przechowywać moje dane geograficzne, aby jak najszybciej wykonać zapytanie o wyświetlenie całego domu w polu geolokalizacji?

Gruntownie:

Czy używam najlepszej instrukcji SQL, aby wykonać to zapytanie najszybciej?Czy istnieje jakakolwiek inna metoda, może nawet nie korzystająca z bazy danych, abym mógł zapytać o najszybszy sposób, w jaki sposób domy w ramach pudełkowych granic geolokalizacji?

W przypadku, gdy to pomoże, zamieszczam poniższy schemat tabeli bazy danych:

CREATE TABLE IF NOT EXISTS `homes` (
  `home_id` int(10) unsigned NOT NULL auto_increment,
  `address` varchar(128) collate utf8_unicode_ci NOT NULL,
  `city` varchar(64) collate utf8_unicode_ci NOT NULL,
  `state` varchar(2) collate utf8_unicode_ci NOT NULL,
  `zip` mediumint(8) unsigned NOT NULL,
  `price` mediumint(8) unsigned NOT NULL,
  `sqft` smallint(5) unsigned NOT NULL,
  `year_built` smallint(5) unsigned NOT NULL,
  `geolat` decimal(10,6) default NULL,
  `geolng` decimal(10,6) default NULL,
  PRIMARY KEY  (`home_id`),
  KEY `geolat` (`geolat`),
  KEY `geolng` (`geolng`),
) ENGINE=InnoDB  ;

AKTUALIZACJA

Rozumiem, że przestrzenne będą wpływać na krzywiznę ziemi, ale najbardziej interesuje mnie zwrócenie NAJSZYBSZYCH danych geograficznych. Jeśli te przestrzenne pakiety baz danych nie przywrócą w jakiś sposób danych, nie zalecamy rozszerzeń przestrzennych. Dzięki

AKTUALIZACJA 2

Uwaga: nikt poniżej nie odpowiedział na pytanie. Naprawdę nie mogę się doczekać jakiejkolwiek pomocy, jaką mogę otrzymać. Z góry dziękuję.

questionAnswers(11)

yourAnswerToTheQuestion