私はかなり複雑なWebサイト(PHP駆動)でMySQLを使用しています。
理想的には、使用しているSQLクエリをテストし、パフォーマンスを向上させ、テーブルスキャンを回避するより優れたテーブルインデックスを提案するのに役立つツールがあります。
それができない場合は、各クエリが何をしているのかを正確に教えてくれるので、自分で最適化を実行できます。
編集:EXPLAINからの出力を理解するための簡単なガイド...も役立ちます。
ありがとうございました。
私はかなり複雑なWebサイト(PHP駆動)でMySQLを使用しています。
理想的には、使用しているSQLクエリをテストし、パフォーマンスを向上させ、テーブルスキャンを回避するより優れたテーブルインデックスを提案するのに役立つツールがあります。
それができない場合は、各クエリが何をしているのかを正確に教えてくれるので、自分で最適化を実行できます。
編集:EXPLAINからの出力を理解するための簡単なガイド...も役立ちます。
ありがとうございました。
EXPLAIN に関する情報を次に示します (O'Reilly の High Performance MySQL book から参照)。
クエリで EXPLAIN を実行すると、そのクエリについて MySQL が認識しているすべての情報が、クエリに含まれる各テーブルのレポートの形式で表示されます。
これらのレポートのそれぞれが教えてくれます...
この本は、このような情報を提供するのに非常に優れているので、まだ購入していない場合は、上司に購入を承認してもらいます.
そうでなければ、より知識のあるSOユーザーが助けてくれることを願っています:)
As a simplest thing, enable Slow Query Log and see what queries are slow, then try to analyze them as suggested.
おそらくクエリアナザがありますが、最初の簡単なカットにはmysqlコマンドラインを使用し、「explain select * from foo where bar='abc'」と入力します。最も一般的なクエリがインデックスを使用していることを確認し、シーケンシャルスキャンや大きなテーブルの並べ替えを避けてください。
EverSQL https://www.eversql.com
遅いクエリを分析してインデックスを生成し、いくつかのヒントを提供します。
あらゆる種類の MySQL タスクを実行するためのオープン ソース ツールキットであるMaatkitを調べる必要があります。何をチューニングしようとしているのかについての正確な情報がなければ、どのツールをどのように使用するのかを判断するのは困難ですが、ドキュメントは優れており、多くのアプリケーションをカバーしています。
残りのSQL調整に使用するツール(SQLyog)には、プロファイラーを含む新しいバージョンがあります。これはすばらしいことです。(私は彼らのために働いていません-私は彼らの製品を使用しています)