私は2600万レコードのテーブルを持っていて、それにいくつかの列を追加したかったので、追加された列で新しいテーブルを作成してから、
INSERT INTO table_new SELECT (field1,field2) FROM table_old
これは、既存のテーブルに列を追加しようとするよりも速いと言われています。
いずれにせよ、2600万件のレコードがあるため、これには長い時間がかかり、MySQL Workbenchでプロセスを監視すると、プロセスがまだ実行されていることがわかります(40時間とカウント)。
ただし、を実行するSELECT * FROM table_new
と、まだレコードが表示されません。InnoDBでは、トランザクション全体が完了するまで待ってから、新しいテーブルに2,600万件のレコードが表示されますか?または、レコードが1つずつリアルタイムで挿入されていることを確認する必要がありますか?
以前は昨日着実にカウントアップしていたステータス変数を見ていて、Innodb_rows_inserted
0から2600万への進捗を表す必要があると思いますが、現在は1400万で静止しており、リアルタイムで増加していません:S、それでも私のINSERT INTO SELECT
プロセスはまだ実行中です。何かがおかしいのではないかと心配しています。
すべてが期待どおりに機能していることを確認するにはどうすればよいですか?