Я не эксперт по базам данных, но у меня достаточно знаний, чтобы попасть в неприятности, как в данном случае. Этот запрос
SELECT DISTINCT p.*
FROM points p, areas a, contacts c
WHERE ( p.latitude > 43.6511659465
AND p.latitude < 43.6711659465
AND p.longitude > -79.4677941889
AND p.longitude < -79.4477941889)
AND p.resource_type = 'Contact'
AND c.user_id = 6
очень медленно. Таблица точек содержит менее 2000 записей, но выполнение занимает около 8 секунд. Есть указатели на столбцы широты и долготы. Удаление предложения, содержащего resource_type и user_id, не имеет значения.
Поля широты и долготы оба отформатированы как числа (15,10) - мне нужна точность для некоторых вычислений.
Есть много, много других запросов в этом проекте, где сравниваются точки, но нет проблем со временем выполнения. Что происходит?