Ads by Google
ページ詳細
コメント
>本当にスキーマの変更をしたい場合には注意するべき点が一つある。コマンドが一回で終わるように、カラムやインデックスの追加・削除を一行で書くということである。 / MySQLのALTER TABLEはテンポラリテーブルを用いて全データをコピーする。ので、コマンドの実行が1回で済むように配慮する。
このようなALTER TABLEコマンドであるが、使いようによっては便利な面もある。コマンドの実行中もテーブルからREADが出来るからだ。テーブルが壊れた場合には REPAIR TABLEコマンドを使うし、最適化したい場合にはOPTIMIZE TABLEコマンドを使うのだが、これらのコマンドはWRITEだけでなくREADもブロックしてしまう



『まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである』<まぁそうでしょうな