ORDER BY datetime делает запрос очень медленным

Я пытаюсь извлечь данные из нескольких таблиц, и когда я использую поле ORDER BY datetime, оно возвращает результаты по крайней мере через 10 секунд, но если я делаю тот же запрос без ORDER BY, то он возвращает результаты менее чем за 2 секунды.

Это мой текущий запрос

SELECT
ph.call_subject AS callSubject,
ac.account_name AS accountName,
DATE_FORMAT(ph.trigger_on, "%c/%e/%Y %h:%i %p") AS triggerOn,
ind.name AS industry,
cc.call_code_name AS callCode
FROM phone_calls AS ph
INNER JOIN accounts AS ac ON ph.account_id = ac.account_id
INNER JOIN industries AS ind ON ind.industry_id = ac.industry_id
INNER JOIN call_codes AS cc ON ph.call_code_id = cc.call_code_id
WHERE ac.status = 1 AND ph.status = 1 AND ph.owner_id = 1 AND ac.do_not_call = 0
AND ph.trigger_on BETWEEN '2012-11-19 00:00:00' AND '2013-03-19 23:59:59'
ORDER BY ph.trigger_on ASC LIMIT 0,1000

все следующие поля имеют тип INT (11) UNSIGNED

ph.account_id
ac.account_id
ind.industry_id
ac.industry_id
ph.call_code_id
cc.call_code_id
ph.owner_id

Следующие поля имеют тип tinyint (1)

ac.status 
ph.status
ac.do_not_call

это поле типа datetime

ph.trigger_on

Обратите внимание, что на счетах 300 тысяч записей, а на phone_calls 5 миллионов записей. Что я могу сделать, чтобы быстрее выполнить этот ORDER BY? обратите внимание, что все мои поля условия where, все мои предложения ON и ph.trigger_on проиндексированы. и я использую движок хранения InnoDB, а не MyIsam.

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос