SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
てるてる動画

【MySQL】 ALTER TABLE

mysql

MyISAMやInnoDBに対してALTER TABLEを実行すると、以下のような動作をします。

  1. テーブルをTL_WRITE_ALLOW_READロックする。(実行中対象テーブルは読み取り可、書き込み不可の状態)
  2. 新しいテーブル定義を使って空のテンポラリテーブルを作成する。
  3. 古いテーブルから新しいテーブルへデータをコピーする。
  4. テーブルの名前を付け替えて、新しいテーブルを古いテーブルと同じ名前にする。
  5. 古いテーブルを破棄する。
  6. 新しいテーブルへブロックしていたWRITEをリダイレクトする。

テンポラリに全テータのコピーをするので、1つのテーブルに2つ以上の変更を加える場合は、ALTER文をひとまとめにした方が早く完了します。

参考

http://nippondanji.blogspot.jp/2009/05/alter-table.html

関連するメモ

コメント