MySQL - DELETE

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要



DELETE / TRUNCATEの違い

DELETE

  • レコード単位で削除するため低速である。
  • 全削除でもトランザクションログを記録する。
    ロールバック可能である。
  • AUTO_INCREMENTは維持する。
  • WHERE句等で条件指定可能である。


条件付き削除やロールバックの可能性がある場合は、DELETE文を使用する。

TRUNCATE

  • テーブル全体を一括で高速に削除する。
  • トランザクションログを最小限に抑える。
    ロールバック不可となる。
  • AUTO_INCREMENTを初期化する。
  • WHERE句等が使用できない。


全レコード削除が確実であることやロールバック不要な場合は、TRUNCATE文を使用する。