Вот запрос:
Примечание. Заполнители ? представляют параметры из подготовленного оператора (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]
Мобильная версия