У меня есть таблица с примерно 5000 строк, которые содержат геокоординаты (широта + долгота) и информацию о местоположении (город, штат и страна) на ориентирах. Я использую эту таблицу для получения мест, ближайших к местоположению пользователя (например, близлежащие парки и т. д.).
На данный момент я фильтрую запрос путем обратного кодирования GPS-координат пользователя, чтобы получить его город, штат и страну (я использую геокодер Android). Однако я понял, что геокодер время от времени дает сбой, поэтому SQL-запрос на моем облачном сервере не возвращает никаких результатов.
Поэтому я думаю просто пропустить обратное кодирование, чтобы каждый раз получать хорошие результаты. Я просто использую геокоординаты, чтобы получить то, что хочу, например:
SELECT p.placeId, p.name,( 6371 * acos( cos( radians($latitude) ) * cos( radians( p.latitude ) ) * cos( radians( p.longitude ) - radians($user_longitude) ) + sin( radians($user_latitude) ) * sin( radians( p.latitude ) ) ) ) AS distance ORDER BY distance
Тем не менее, размер моей таблицы увеличивается с каждым днем и в конечном итоге может вырасти до 500 000. Как вы думаете, может ли выполнение вычисления расстояния для каждой строки стать проблемой производительности, когда моя таблица масштабируется до такого размера? Или таблица из 500 000 строк на самом деле не проблема?