web-dev-qa-db-ja.com

MySQL EXPLAINの結果をテーブルにコピーするにはどうすればよいですか?

一連のクエリEXPLAINプランの結果を後で分析するためにテーブルにアーカイブしたいと思います。

EXPLAINの結果からすべてのフィールドを含むテーブルを作成しましたが、EXPLAINコマンドを実行してデータを設定する方法を理解できません。

INSERTコマンドを含むMySQL Workbenchで.sqlファイルをエクスポートする方法を理解しましたが、これを機能させるには手動で編集する必要があります。 EXPLAIN情報はどこかに保存されているので、自動的に実行するクエリを記述できますか? information_schemaとperformance_schemaのどちらにも見つかりません。

6
kcd

Linux OSで実行している場合は、ファイルに保存できます。

例:

User='root'
Pass='text'
Host='10.0.0.223' (If it's remote)

コマンドラインで:

mysql -u $User -p$Pass --Host=$Host -e "EXPLAIN SELECT * FROM mysql.user LIMIT 0,2" | tee -a test.txt

mysql -eは、コマンドラインでクエリを実行します。

tee -aは標準入力から読み取り、ファイルtest.txtに書き込みます

そして、あなたは得るでしょう:

enter image description here

Perlを使用して、死亡行を任意の区切り文字に置き換えることができます(この例ではコンマを使用しました)。

Perl -wnlpi -e 's/\s+/,/g;' text.txt

例:

enter image description here

この助けを願っています。

2
oNare