1

実行に非常に長い時間がかかるが、最終的に新しいテーブルを生成するクエリがあります。実際の結合はそれほど遅くはありませんが、ほとんどすべての時間を「tmp テーブルへのコピー」に費やし、この間、他のすべてのクエリ (関係のないテーブルに移動する必要があります) のステータスは「ロック」されます。長いクエリを最適化していますが、オフライン プロセスなので時間がかかることは問題ありませんが、関係のない他のすべてのクエリを停止することは問題です。他のすべての無関係なクエリが「ロックされた」として戻ってくる理由と、この動作を防ぐ方法を知っている人はいますか?

4

2 に答える 2

1

「関連のないテーブル」は影響を受けないはずです。それらはすべきではありませんし、私の知る限りそうではありません。

MySQLには、ロック、ストレージ エンジン、およびそれを処理する方法に関する多くの情報があります。

ロックを制限するには、この新しいテーブルを実行するために必要なすべてのデータを読み取るアプリケーションを作成し、そのアプリケーションで新しいテーブルに値を挿入するだけにすることをお勧めします。これには時間がかかる場合がありますが、小さなチャンクで実行され、ロックが少ないかまったくありません。

幸運を!

于 2011-11-21T21:20:53.957 に答える
-1

MySQL のバージョンは何ですか?

MyISAM を使用していますか? MyISAM には、大きな SELECT コマンドで大きな LOCK 問題があります。

専用サーバーはありますか?インメモリ テーブルの最大サイズはいくつですか (my.cnf を参照)。

于 2011-11-21T21:13:25.620 に答える