がなくても以下のクエリorder by
は非常に遅く、その理由がわかりません。だと思いwhere date_affidavit_file
ますが、どうすればそれを速くすることができorder by
ますか?おそらく、where に一致する job_id のサブレクトで、それを残りのコードに渡しますが、サーバーごとにこのようにサーバー名を注文する必要があります。助言がありますか?
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 | テーブル | タイプ | 可能な_キー | キー | key_len | 参照 | 行 | 行 エクストラ | +----+-------------+---------+--------+----------- -----------+---------+---------+------------------ ---+--------------------+----------------------------------- -----------+ | | 1 | シンプル | 仕事 | 仕事 | すべて | date_affidavit_filed | ヌル | ヌル | ヌル | 365212 | where を使用します。一時的な使用; ファイルソートの使用 | | | 1 | シンプル | 加瀬 | eq_ref | プライマリ | プライマリ | 4 | pserve.job.kase_id | 1 | | | | | 1 | シンプル | サーバー | eq_ref | プライマリ | プライマリ | 4 | pserve.job.server_id | 1 | | | | | 1 | シンプル | クライアント | eq_ref | プライマリ | プライマリ | 4 | pserve.kase.client_id | 1 | | | | | 1 | シンプル | ルクール | eq_ref | プライマリ | プライマリ | 4 | pserve.kase.court_id | 1 | | | +----+-------------+---------+--------+----------- -----------+---------+---------+------------------ ---+--------------------+----------------------------------- -----------+