mysql 結果 長時間実行される代替クエリを強制終了するとどうなりますか?




検索 エンジン タイトル (2)

それはあなたが何をしているかによって異なります。 もしあなたがan alter table...add indexコマンドをInnoDBテーブルにan alter table...add indexan alter table...add indexあれば( MyISAMについてはそれほど確かではありません)、最初に完全なテーブルをコピーして実行します:ifそれは "コピーする一時テーブル"の真ん中にあり、それはかなり止めることはできません。

ここをクリック:

ほとんどの場合、ALTER TABLEは元のテーブルの一時コピーを作成することによって動作します。 変更がコピーで実行され、元のテーブルが削除され、新しいテーブルの名前が変更されます。 ALTER TABLEが実行されている間、元のテーブルは他のセッションによって読み込み可能です。 新しいテーブルの準備が整うまで、テーブルへの更新と書き込みは停止され、更新されずに新しいテーブルに自動的にリダイレクトされます。

長時間実行される代替クエリを強制終了するとどうなりますか? 変更クエリは単純に元に戻りますか? どのくらいの時間がかかることができましたか?

そのクエリが別のサーバーに複製されている場合はどうなりますか? 他のサーバー上のプロセスを強制終了すると、元のサーバーの変更クエリが元に戻りますか?

私たちはmysqlを実行しています


そのクエリが別のサーバーに複製されている場合はどうなりますか?

ALTERは、関連する影響とともに、そのサーバーでも実行されます。

他のサーバー上のプロセスを強制終了すると、元のサーバーの変更クエリが元に戻りますか?

いいえ。 元のサーバーには、スレーブ上で発生した(またはしなかった)ことについて学習するバックチャネルはありません。 スレーブでALTERを強制終了すると、マスタに新しい制約またはインデックスがあり、スレーブにはない状況で終了します。 これはめったに幸福のためのレシピではありません:)

ALTERがレプリケーションログに入ると、どこでも実行できるようにするか、どこにでも置く必要があります。





alter