0

100万行のテーブルがあり、それにインデックスを追加する必要があるとします。そうするプロセスは何でしょうか?ALTER TABLE table ADD INDEX column (column)プロダクションで直接行うことはできますか?または、インデックスを追加するために他のことを考慮する必要がありますか?

通常、ライブプロダクションデータベースにインデックスを追加するにはどうすればよいですか?

4

2 に答える 2

2

個人的には物事が静かになるまで待ちますが、データベースをオフラインにする必要はありません。ユーザーには遅延が表示される場合がありますが、タイムアウトすることはありません。(もしそうなら、何か他のものが間違っています。)

インデックスを追加しても、dbmsはテーブル全体をコピーしないことに注意してください(列を追加する場合のように)。

于 2012-06-18T18:03:07.920 に答える
2

最初に、同様の負荷条件でテストデータベースに同じインデックスを追加してみて、問題が発生しないことを確認する必要があります。インデックスを作成することにより、しばらくの間テーブルをロックし、他のクエリが失敗する可能性があります。

100万行は大きなテーブルですが、それほど大きくはありません。おそらく、インデックスの追加がかなり迅速に完了することがわかるでしょう。リアルタイムの制約がない限り、深刻な問題が発生する可能性はほとんどありません。ただし、最初にテストする価値は確かにあります。

于 2012-06-18T18:04:52.523 に答える