La requête ci-dessous même sans le order by
est très lent et je ne peux pas comprendre pourquoi. Je suppose que c'est le where date_affidavit_file
mais comment puis-je le faire rapidement avec ce order by
aussi bien? Peut-être un sous-job sur le job_id qui correspond à l'endroit et ensuite passer dans le reste du code mais j'ai toujours besoin de commander par serveur le nom du serveur comme ceci. Aucune suggestion?mysql lente requête complexe avec l'ordre par
explain select sql_no_cache court_county, job.id as jid, job_status,
DATE_FORMAT(job.datetime_served, '%m/%d/%Y') as dserved ,
CONCAT(server.namefirst, ' ', server.namelast) as servername, client_name,
DATE_FORMAT(job.datetime_received, '%m/%d/%Y') as dtrec ,
DATE_FORMAT(job.datetime_give2server, '%m/%d/%Y') as dtg2s,
DATE_FORMAT(date_kase_filed, '%m/%d/%Y') as dkf,
DATE_FORMAT(job.date_sent_to_court, '%m/%d/%Y') as dtstc ,
TO_DAYS(datetime_served)-TO_DAYS(date_kase_filed) as totaldays from job
left join kase on kase.id=job.kase_id
left join server on job.server_id=server.id
left join client on kase.client_id=client.id
left join LUcourt on LUcourt.id=kase.court_id
where date_affidavit_filed is not null and date_affidavit_filed !='' order by servername;
+----+-------------+---------+--------+----------------------+---------+---------+-----------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+---------+--------+----------------------+---------+---------+-----------------------+--------+----------------------------------------------+ | 1 | SIMPLE | job | ALL | date_affidavit_filed | NULL | NULL | NULL | 365212 | Using where; Using temporary; Using filesort | | 1 | SIMPLE | kase | eq_ref | PRIMARY | PRIMARY | 4 | pserve.job.kase_id | 1 | | | 1 | SIMPLE | server | eq_ref | PRIMARY | PRIMARY | 4 | pserve.job.server_id | 1 | | | 1 | SIMPLE | client | eq_ref | PRIMARY | PRIMARY | 4 | pserve.kase.client_id | 1 | | | 1 | SIMPLE | LUcourt | eq_ref | PRIMARY | PRIMARY | 4 | pserve.kase.court_id | 1 | | +----+-------------+---------+--------+----------------------+---------+---------+-----------------------+--------+----------------------------------------------+
Avez-vous des index sur vos tables? – andrewsi
Cela pourrait être une question pour http://dba.stackexchange.com/ au lieu de StackOverflow. – Fluffeh
Vous utilisez des jointures à gauche. Attendez-vous des valeurs null? – Arjan