ポール:
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;
SELECT * FROM ref_table WHERE key_column=expr;
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;
これらは、MySQLマニュアルから逐語的にコピーされます: http:// dev.mysql.com/doc/refman/5.0/en/using-explain.html
永遠にかかるクエリを投稿できたら 、私はそれを遅くしているものを特定するのを助けることができます。また、永遠にの定義を指定してください は。また、「SHOWCREATETABLExxx;」を提供できればこれらのテーブルのステートメントについては、クエリを可能な限り最適化するのに役立ちます。
改善の可能性のあるポイントとしてすぐに私に飛び出すのは、「一時的なものの使用;ファイルソートの使用;」です。これは、クエリを満たすために一時テーブルが作成されたことを意味し(必ずしも悪いことではありません)、指定したGROUP BY / ORDER BYをインデックスから取得できなかったため、 filesort 。