Как я могу оптимизировать этот пространственный запрос MySQL с помощью MBRIntersects и ST_DISTANCE_SPHERE?MySql

Форум по Mysql
Ответить
Anonymous
 Как я могу оптимизировать этот пространственный запрос MySQL с помощью MBRIntersects и ST_DISTANCE_SPHERE?

Сообщение Anonymous »

Я работаю с таблицей MySQL (около 1,25 миллиона строк). Мне нужно получить строки, в которых и начало координат, и место назначения попадают в радиусные фильтры вокруг двух заданных координат. При большом радиусе отправления и назначения (250 миль) запрос занимает от 4 до 7 секунд.
Вот запрос:
Примечание. Заполнители ? представляют параметры из подготовленного оператора (Java).

Код: Выделить всё

SELECT
Created, Last_Modified, Net_Freight_Charges, Quote_Currency, Origin_Expected_Date,
ST_DISTANCE_SPHERE(Origin_Geolocation, ST_SRID(Point(?, ?), ?)) AS Distance_From_Origin_Meters,
ST_DISTANCE_SPHERE(Destination_Geolocation, ST_SRID(Point(?, ?), ?)) AS Distance_From_Destination_Meters
FROM carrierquote
WHERE Origin_Expected_Date IS NOT NULL
AND Origin_Expected_Date >= ?
AND Origin_Expected_Date  Сканирование диапазона индекса по предложению оператора связи с использованием IDX_Destination_Geolocation поверх (Destination_Geolocation unprintable_geometry_value) (стоимость=38441 rows=36916) (фактическое время=0.349..2426 rows=163927 циклов=1)
Будем очень признательны за любые советы по уменьшению количества строк на ранних этапах запроса, улучшению пространственной фильтрации или переписыванию запроса для повышения производительности. 

Подробнее здесь: [url]https://stackoverflow.com/questions/79842361/how-can-i-optimize-this-mysql-spatial-query-using-mbrintersects-and-st-distance[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»