2011-06-01 8 views
5

MySQLのテーブルで面白い問題が起きました。私は、レポート作成のための一時テーブルとして構築していました。遅いテンポラリテーブル

私はストレージエンジンを指定しなかった場合、DROP TEMPORARY TABLEコマンドが最大0.5秒間ハングすることがわかりました。

テーブルをENGINE = MEMORYと定義すると、この短いハングが消えます。

私はこの問題(MEMORYテーブルを使用して)の解決策を持っているので、私の質問はなぜ一時テーブルが落とすのに時間がかかるのですか?彼らはデフォルトでMEMORYエンジンを使用しませんか?それは私の現在のテストデータで数百行にもなる非常に大きなテーブルではありません。

答えて

4

テンポラリテーブルは、デフォルトでは、mysql設定がそれを伝える場所、通常は/ tmpやディスク上のどこかに作成されます。この場所を複数の場所でも、/ dev/shmなどのRAMディスクの場所に設定できます。

希望すると便利です。

+1

ファイルを削除するだけでは(DROP TABLEが実際に行うすべてのことです)、反応が半減することがあります。 – GordonM

関連する問題