SQLクエリを最適化するためのオープンソースMySQLパフォーマンスツールはありますか?
答え1
mysqlコマンドを分析するには、次のものを使用できます。SHOW PROFILE
mysql> SET profiling = 1;
mysql> [type your query here]
mysql> SHOW PROFILE;
目的の結果を得るためにmysqlが実行するアクションに関する詳細情報を取得するにはEXPLAIN
。
mysql> EXPLAIN [type your query here]
最適化のための良い出発点は、インデックスを使用してメモリ使用量を増やすことですmy.cnf
(デフォルトパラメータは非常に低い可能性があります)。テーブルから多くのデータを削除する場合OPTIMIZE TABLE
にも役立ちます。
OPTIMIZE TABLE table;
それにもかかわらず、SHOW PROFILEの出力を使用して、どの部分が多くの時間を必要とし、最適化する価値があるかを決定する必要があります。
最適化時にクエリキャッシュの切り替えに注意してください。そうでなければ、あなたは自分自身をだますようになります。
答え2
まず、どんな最適化とキャッシュを使用しても物理ハードウェアを置き換えることはできません。最適な最適化の形式は、サーバーにメモリを追加してから最適化手順を実行することです。
MySQLの最適化は継続的なプロセスです。毎週MySQLを調整する必要があります。これにより、MySQLの設定を調整できます。
5年前にこの質問を受けたとき、私たちはTrusty Tahrにいましたが、これが私が最も覚えているものです。その中に編集できるファイルがありmy.cnf
、Xenialですばやく巻いて開くと編集可能な文書が/etc/mysql
ありませんでした。my.cnf
。今リンク/etc/alternatives/my.cnf
Xenial(Ubuntu 16)を使用して編集したいファイルは別のディレクトリにあります。つまり、/etc/mysql/mysql.conf.d
この投稿を見ている人のために編集したいファイルはですmysqld.cnf
。
ファイルをバックアップしてホームディレクトリに戻り、それを使用してmysqlcheck
データベースを最適化します。