База данных: лучший способ получить данные о географическом местоположении?

У меня есть база данных MySQL. Я храню дома в базе данных и выполняю буквально 1 запрос к базе данных,но мне нужно, чтобы этот запрос был выполнен очень быстро, и это вернуть все дома в пределах квадрата, географической широты и долготы.

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

Как мне лучше всего сохранить свои геоданные, чтобы я мог быстрее выполнить этот запрос, чтобы отобразить все дома в окне геолокации?

В основном:

Использую ли я лучший оператор SQL для выполнения этого запроса быстрее всего?Существует ли какой-либо другой метод, возможно, даже не использующий базу данных, чтобы я мог быстрее всего запросить результаты поиска домов в пределах границ геолокации в штучной упаковке?

В случае, если это поможет, я включу мою схему таблицы базы данных ниже:

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  ;

ОБНОВИТЬ

Я понимаю, что пространственная воля будет влиять на кривизну Земли, но мне больше всего интересно возвращать геоданные как можно быстрее. Если эти пакеты пространственной базы данных не возвращают данные быстрее, не советуйте пространственные расширения. Спасибо

ОБНОВЛЕНИЕ 2

Пожалуйста, обратите внимание, что никто из нижеуказанных не ответил на вопрос. Я действительно с нетерпением жду любой помощи, которую я мог бы получить. Заранее спасибо.

Ответы на вопрос(11)

Ваш ответ на вопрос