2011-11-29 15 views
7

私は現在、実行中のスクリプトを持っていて、実行に時間がかかるとは思わなかったので、スクリプトは一時テーブルを変更しています。MySQLの一時テーブルを表示する - セッション中ではない

私は一時テーブルが現在のセッションにのみ存在することは知っていますが、セッションの外に保持しているデータを見るにはどうしてもありますか?

理由は、スクリプトの実行時間を知りたいのですが、一時的なデータを見ることができれば、それを把握することができます。

+2

誰かが「一時テーブルを表示」するためのパッチを作成しました:http://venublog.com/2010/02/03/show-temporary-テーブル/ これはPercona XtraDB(人気のあるMySQLフォーク)に含まれています。 – ggiroux

+0

@ggiroux、WebScaleSQLはどうですか? – Pacerier

+0

MySQL 5.7では、新しいINFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFOが追加されました:http://dev.mysql.com/doc/refman/5.7/en/innodb-information-schema-temp-table-info.html – ggiroux

答えて

8

これを行う簡単な方法はありません。私は恐れています。

一時表は、あなたのmysqldの指定の一時ディレクトリ(通常は/ tmp)に保存され、あなたのような何かテーブルのセットが表示されます:順序で定義MyISAMテーブルの通常の設定だ

-rw-rw---- 1 mysql mysql  8724 Nov 29 18:09 #sqldba_5fa70c_12f1.frm 
-rw-rw---- 1 mysql mysql 188408 Nov 29 18:09 #sqldba_5fa70c_12f1.MYD 
-rw-rw---- 1 mysql mysql  1024 Nov 29 18:09 #sqldba_5fa70c_12f1.MYI 

(上記の)構造、データおよび索引。

これはひどくハッキリですが、これらの表をtestスキーマにコピーして、表を修復して内容を表示することができます。

一時テーブルのサイズによってプロセスを評価できる場合は、それが何が起こっているのかを簡単に分析する方法になります。

+0

ありがとうございます。ファイルサイズは非常に役立ちました。私はそれを同様のテーブルのサイズと比較しました。 – Drahcir

1

ができない、あなたは(ただし)、
ログマイルストーン(メッセージ、終了%、数の処理された行)の一時ファイルに
、とは、MySQL 5.7では

関連する問題