回答:
SHOW FULL PROCESSLIST
を使用しない場合FULL
、「各ステートメントの最初の100文字のみがInfo
フィールドに表示されます」。
phpMyAdminを使用する場合は、「全文」オプション(結果テーブルの左上隅にある「←T→」)をクリックして、切り捨てられていない結果を表示する必要があります。
SHOW FULL PROCESSLIST
ます。どういうわけかもっと充実させることができますか?
SHOW FULL PROCESSLIST
セミコロンが必要;
ですか?
Show Processlistは、別のテーブルから情報をフェッチします。データをプルして、クエリ全体を含む「INFO」列を確認する方法は次のとおりです。
select * from INFORMATION_SCHEMA.PROCESSLIST where db = 'somedb';
要件に基づいて、任意の条件を追加するか、無視することができます。
クエリの出力は次のようになります。
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| 5 | ssss | localhost:41060 | somedb | Sleep | 3 | | NULL |
| 58169 | root | localhost | somedb | Query | 0 | executing | select * from sometable where tblColumnName = 'someName' |
COMMIT
。実際のクエリの詳細を表示する方法を知っていますか?
MySQLのドキュメントを読んだところSHOW FULL PROCESSLIST
、デフォルトでは現在のユーザー接続からのスレッドのみがリストされます。
MySQL SHOW FULL PROCESSLISTドキュメントからの引用:
PROCESS権限を持っている場合は、すべてのスレッドを表示できます。
したがってProcess_priv
、mysql.user
テーブルの列を有効にすることができます。FLUSH PRIVILEGES
後で実行することを忘れないでください:)
手動で対話せずにシェルセッションで更新されたプロセス(例では2秒)を取得し続けたい場合は、次のコマンドを使用します。
watch -n 2 'mysql -h 127.0.0.1 -P 3306 -u some_user -psome_pass some_database -e "show full processlist;"'
の唯一の悪い点show [full] processlist
は、出力結果をフィルタリングできないことです。一方、SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
表示したくないものを出力から削除するためのオープンな可能性を発行します。
SELECT * from INFORMATION_SCHEMA.PROCESSLIST
WHERE DB = 'somedatabase'
AND COMMAND <> 'Sleep'
AND HOST NOT LIKE '10.164.25.133%' \G