У меня есть этот оператор SQL, который работает, но обработка занимает много времени
У меня есть таблица a_log и таблица people. Мне нужно найти последнее действие и связанного пользователя для каждого идентификатора для данного человека в таблице людей.
SELECT p.`id`, activity, appphone, appname, dateadd
FROM people p
LEFT JOIN a_log a
ON p.id = a.id
WHERE ( dateadd >= '2011/09/13 00:00' and dateadd <= '2011/09/13 23:59')
AND (a.date_time = (SELECT MAX(a1.date_time)
FROM activity_log a1
WHERE a.id = a1.id
GROUP BY id) OR date_time IS NULL)
ORDER BY `id` desc limit 0, 100
У меня есть неуникальный индекс для поля date_time и id в таблице a_log
У меня есть первичный индекс в поле id и неуникальный индекс в поле dateadd в таблице people
Как я могу получить более короткое время выполнения этого запроса?
Спасибо