select
OQSP.query_id as quries_id,
OQA.allocation_date_time,
OQA.submitted_date_time,
OQA.comment,
OQ.*,
p.pnr_no,
p.pnr_generated_time,
p.mail_status,
p.exp_mail_status,
p.time_validity,
p.payment_status,
p.payment_type
from online_query_submit_option OQSP
left join online_query_allocation OQA on OQSP.query_id= OQA.alloted_query_id
left join online_queries OQ on OQSP.query_id= OQ.query_id
left join pnr_quries as p on p.query_id=OQ.query_id
where
1=1
and (OQ.confirm IS NULL OR OQ.confirm='')
and (OQ.dead IS NULL OR OQ.dead='')
and (OQ.running IS NULL OR OQ.running=''
OR OQ.running='running')
and OQA.assigned_executive='swatijoshi'
and OQA.exec_del_status=0
and OQ.admin_del_status=0
and OQA.submitted_query=1
AND date(OQ.query_date)='2015-07-28'
group by OQSP.query_id
order by OQ.query_date DESC,OQSP.query_id DESC
limit 0,5
ответ
Не используйте LEFT
, когда он вам не нужен.
left join online_queries OQ on OQSP.query_id= OQ.query_id ...
AND date(OQ.query_date)='2015-07-28'
LEFT
говорит держать отсутствующие строки из OQ; но затем AND
выкинет любые отсутствующие строки.
Изменить
AND date(OQ.query_date)='2015-07-28'
group by OQSP.query_id
order by OQ.query_date DESC,OQSP.query_id DESC
limit 0,5
в
AND OQ.query_date >= '2015-07-28'
AND OQ.query_date < '2015-07-28' + INTERVAL 1 DAY
group by OQ.query_date,
OQ.query_id -- added to match the ORDER BY
order by OQ.query_date DESC,
OQ.query_id DESC -- same as OQSP
limit 0,5
и добавить
INDEX(query_date, query_id) -- to OQ
Таким образом, оптимизатор может быть в состоянии сделать GROUP BY
, ORDER BY
и LIMIT
все очень efficien используя INDEX
.
Пожалуйста, измените ваш вопрос включить
SHOW CREATE TABLE -- for each table
EXPLAIN SELECT ...;
С теми, мы можем обойтись немного больше советов/злоупотребления.
Не полный ответ, но, надеюсь, некоторые полезные советы:
Используйте EXPLAIN, чтобы выяснить, как хорошо ваш запрос выполняется.
Убедитесь, что все поля, к которым вы подключаетесь, индексируются, просто ли они являются первичным ключом или иным образом. Иногда индексирование некоторых полей, упомянутых в предложении WHERE, также может повысить скорость вашего запроса.
Возможно, вы также захотите изменить порядок своих JOIN; похоже, что ваш первый шаг должен состоять в том, чтобы получить записи OQA, поскольку они вернут очень ограниченный набор.
Это OQ.query_date поле 'date' или поле 'datetime'? Если первое, вам может не понадобиться использовать дату() вокруг него. Если по какой-либо причине он определен как VARCHAR, измените его на поле даты.
- 1. Как PDO может выполнить этот запрос?
- 2. как выполнить этот запрос
- 3. Как выполнить этот запрос
- 4. Как выполнить этот запрос
- 5. Как выполнить этот запрос?
- 6. Почему я не могу выполнить этот запрос на правку firebird?
- 7. Почему этот запрос не работает?
- 8. Почему этот запрос не работает?
- 9. QtSql не может выполнить запрос
- 10. PHP не может выполнить запрос
- 11. не может выполнить запрос CodeIgniter
- 12. не может выполнить запрос SELECT
- 13. Почему этот простой запрос UPDATE не может работать?
- 14. не может понять этот запрос
- 15. Почему SunOS заявляет, что не может выполнить этот скрипт KornShell?
- 16. Почему Ansible не может выполнить этот простой скрипт?
- 17. Почему этот запрос не работает?
- 18. Как мне выполнить этот запрос?
- 19. Почему этот запрос не работает?
- 20. Почему этот запрос не работает
- 21. Почему этот запрос не работает?
- 22. Почему этот запрос не работает
- 23. Почему этот запрос не работает?
- 24. Почему этот запрос не работает?
- 25. Почему этот запрос не работает?
- 26. Выполнить этот запрос, не изменяя sql_mode
- 27. Почему этот запрос Hibernate JPQL не может работать?
- 28. Как быстро выполнить запрос в mysql
- 29. Почему mysql не оптимизирует этот простой запрос?
- 30. Как выполнить этот запрос обновления?
Пожалуйста, приложите немного усилий для форматирования запроса. Он не читается. –
Я не понял запрос форматирования, на самом деле это мой первоначальный запрос, который я запускаю, и это замедляет почему ..........? –
@ChandanKumar: [Перейдите по этой ссылке] (http://stackoverflow.com/help/how-to-ask) – Wanderer