- Автор темы
- #1
есть таблица с большим количество записей. Как лучше сделать в плане производительности.
Т.е. человек задает адресс и радиус и ему ищется количество результатов по радиусу, и сортируется по близости к пользователю
но таблица огромная (вообще-то их 2, первая с исполнителями ,а вторая с адрессами исполнителей т.е долгота широта)
Если всё записывать в массив и там(в серверном языке) уже считать записи подходящие ,то будет памяти не слабо брать. Может можно как-то отсортироваться на уровне запроса, а также не брать пустые записи.
Конечно хорошо счетчик использовать COUNT будет не так жрать ресурсы, ну а если эти результаты еще и выводить нужно будет.
что я пока надумал
SELECT * FROM vendor WHERE COALESCE(n1,n2,n3,n4) IS NOT NULL AND distance<$distance ORDER BY distance DESC
хотя * использовать не комильфо по производительности
где расстояние лучше пересчитывать в php или mysql
Т.е. человек задает адресс и радиус и ему ищется количество результатов по радиусу, и сортируется по близости к пользователю
но таблица огромная (вообще-то их 2, первая с исполнителями ,а вторая с адрессами исполнителей т.е долгота широта)
Если всё записывать в массив и там(в серверном языке) уже считать записи подходящие ,то будет памяти не слабо брать. Может можно как-то отсортироваться на уровне запроса, а также не брать пустые записи.
Конечно хорошо счетчик использовать COUNT будет не так жрать ресурсы, ну а если эти результаты еще и выводить нужно будет.
что я пока надумал
SELECT * FROM vendor WHERE COALESCE(n1,n2,n3,n4) IS NOT NULL AND distance<$distance ORDER BY distance DESC
хотя * использовать не комильфо по производительности
где расстояние лучше пересчитывать в php или mysql