2011-07-06 8 views
2

プライマリMySQLサーバでは、行を挿入して特定のテーブルにキーを再度有効にするまでに40分かかりました。スレーブ側では、ALTER TABLE ... ENABLE KEYSコマンドが100分以上実行されています。これは非常に珍しいことです。私はそれを殺すが、それは奴隷を悩ますだろう。どのくらい時間がかかるかを垣間見るにはどんな方法がありますか?ALTER TABLEコマンドにどれくらいの時間が残っているかを教えてください。

+0

どちらのマシンも同じ仕様ですか?同じ負荷ですか?テーブルの行数 – Raoul

+0

約1600万行と十数程度のインデックスがあり、今はスレーブの方がはるかに高い負荷(7対9)の下にあります。それは他に何もしません。私は仕様について知らないが、私は100 +分を取ることは非常に珍しいことを知っている。 – Andrew

+0

マシンスペックがわからない場合は、100分以上の時間が珍しいかどうかをどのように判断できますか?プライマリサーバの処理能力/メモリの4分の1を持っていることはご存じの方には分かります。表の名前を変更する以外は、alter tableコマンドIIRCを使用して、新しい表のコピーを作成し、すべてのデータをその表にロードします。チューニングとストレージエンジンの選択も、これにかかる時間に影響します。 – Raoul

答えて

2

これにどれくらい時間がかかりますかを判断する方法はありません。このコマンドは、すべてのデータを一時テーブルにコピーし、変更を加えた後、コピーの名前を変更して元のデータを置き換えます。 ProcessListの「一時テーブルにコピー」が表示されることがありますが、残っている量は表示されません。

また、プロセスを終了せずに操作を終了させることをお勧めします。

忍耐力!

+0

好奇心のために、私がプロセスを終了した場合、どれくらい悪くなるでしょうか? :)(私はこの時点でこのテーブルは必要ないので、私はそれについて心配していない;私はちょうどマスターとの奴隷の同期について心配している) – Andrew

+0

理論では、それは仕事が悪いとにかく一時テーブルで行われ、実際に完了するまで元のままです。このような状況であなたが始めるものを終わらせるのは私の個人的な好みです。 – ChrisBint

1

わからない。ただそれを待たなければならない。

関連する問題