SQLの高速化について - PHPプロ!Q&A掲示板

4886

  • 募集中!! 0P

SQLの高速化について

質問日時 / 2017年11月25日 01:57    回答数 / 0件

Questioner:  aoiruki  このエントリーをはてなブックマークに追加 

キーワード / MySQL    高速化    index   

当方初心者ですがMySQLのindexに関しての質問です。

SELECT a.a_id, a.a_name, a.u_id, c.c_type,  c.c_date , c.c_name , c.c_id, COUNT( b.b_id ) AS count
FROM b
RIGHT JOIN a
LEFT OUTER JOIN c ON a.u_id = c.u_id ON b.b_id = a.a_id
GROUP BY a.a_id
ORDER BY a.time DESC

現在、このSQL文を用いて取得を行っているのですが毎回1.8秒程時間がかかっておりもう少し早くできないかと思いexplainした所こう返ってきました。

select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a index NULL time 1542 NULL 486 Using index; Using temporary; Using filesort
1 SIMPLE c ref u_id u_id 767 table.table.u_id 1  
1 SIMPLE b index b_id b_id 767 NULL 6112 Using index

COUNTとORDER BYに原因があると思って試行錯誤を繰り返していたのですが完全にお手上げ状態となりご質問させて頂きます。
改善点があれば教えていただきたいと思っております。
どうか御教授お願い致します。


この質問にはまだ意見が寄せられていません。

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)