2

こんにちは、新しい列が追加されるこの特定のテーブルで毎秒 3 ~ 4 レコードが読み書きされるデータベースがあります。このテーブルには 60000 を超えるレコードがあります。これに新しい列を追加する必要があります。MySQL>ALTER TABLE テーブル名 ADD カラム名 int(1);

これを行うための最も安全な方法は何でしょうか。MYSQL サーバーを停止せずに、更新プロセス中に新しいレコードを失うことなく、この新しい列を追加することは可能ですか?

4

1 に答える 1

9

MySQL のドキュメント (http://dev.mysql.com/doc/refman/5.1/en/alter-table.html) には、次の情報が記載されています。

「ほとんどの場合、ALTER TABLE は元のテーブルの一時的なコピーを作成します。MySQL はテーブルを変更する他の操作を待ってから続行します。変更をコピーに組み込み、元のテーブルを削除し、新しいテーブルの名前を変更します。 ALTER TABLE is running, the original table is readable by other sessions. ALTER TABLE 操作の開始後に開始されたテーブルへの更新と書き込みは、新しいテーブルの準備が整うまで停止され、更新が失敗することなく新しいテーブルに自動的にリダイレクトされます。一時テーブルは、新しいテーブルのデータベース ディレクトリに作成されます。」

ドキュメントによると、データが失われることはありません。ただし、いつものように、ライブ システムに変更を加える前に、テスト マシンで同じシナリオを確認してください。

于 2012-04-15T06:46:46.003 に答える