MySQLにはEXPLAIN
というステートメントがあります。このステートメントは、エンジンの実行パスを示します。あなたは作るために変更するかを決定するためにそれを使用することができます。
EXPLAIN SELECT foo,bar from glurch WHERE baz > 1 ORDER BY foo;
参照:http://dev.mysql.com/doc/refman/5.0/en/explain-output.html
は、テーブルの行は、クエリのその部分を実行するために検討する必要がありますどのように多くを示しrows
カラムに特別な注意を払ってくださいさらに重要なのは、クエリがどのように実行されるかを示すExtra
の列です。
たとえば、Extra
列の「一時的な使用」が表示されている場合、通常、クエリ結果を一時テーブル(ディスク上にある可能性があります)に書き込んで並べ替え、それらを読んでください(少なくとも、そのうち一部は)。
適切なインデックスを指定することで、一時テーブルなどの不快なパフォーマンスの低下を避けることができます。そして、だけではなく、インデックスではなく、正しいインデックスです。列を索引付けしただけであっても、索引を問合せで使用できるわけではありません。
特定のクエリを念頭に置いていますか?これは非常に幅広いテーマに取り組んでいます。 – alex
mysqlで "EXPLAIN"を使うことをお勧めします。クエリを最適化する方法はわかりませんが、クエリの最適化に使用できるクエリに関する有益な情報が表示されます。 –
開始するための基本的なチュートリアルはこちらを参照してください:http://www.learn-mysql-tutorial.com/OptimizeQueries.cfm – Piskvor