0

数百万行のテーブルがあります。次のクエリをコミットします。

ALTER TABLE my_data ADD KEY `sex_birth` (`sex`, `birth`);

これには 38 分 44.53 秒かかります。

これを最適化してより高速に実行するにはどうすればよいですか?

4

1 に答える 1

0

このクエリを実際に高速化することはできません。しかし、アプリケーションが長時間停止しないように、何かできることは確かにあります。

このテーブルのコピーを別の名前で作成しますmy_data_alter。このテーブルで変更を実行します。

変更が完了した時点までコピーを取得したため、実行されたすべての更新/挿入/削除のログが必要になります。次に、これらのクエリを に実行する必要がありますmy_data_alter

テーブルで発生するトランザクションの数が多すぎると、終わりのないループのようなものになります。

最後に、1 つのクエリで 2 つのテーブルの名前を変更するだけです。

これは非常にややこしいことだと理解しています。オフピーク時にこの種のことを行います。

この仕事をするスクリプトを書くことをお勧めします..

于 2013-05-05T09:41:46.760 に答える