Mariadb 10.4.8
Ищу совпадение с пользовательскими точками, заданы две точки, ищу по маршрутам из БД (поле line), содержит ли этот маршрут данную, точку. Поиск выполняется через построение буфера вокруг точки и наличия пересечения линии и полигона.
Запрос:
SELECT * FROM search WHERE ST_CROSSES(line,ST_BUFFER(ST_GEOMFROMTEXT('POINT(55.7562903 37.6170739)'),0.2)) and ST_CROSSES(line,ST_BUFFER(ST_GEOMFROMTEXT('POINT(59.93427559999999 30.335136)'),0.2)) LIMIT 0,1
На 100 000 записях этот запрос выполняется за 1 секунду. Можно ли как то ускорить или это предел? Есть ли какая-то другая возможная реализация поиска пересечения двух точек и линии, которая работает быстрее?