MySQL - DELETE
ナビゲーションに移動
検索に移動
概要
DELETE / TRUNCATEの違い
DELETE
- レコード単位で削除するため低速である。
- 全削除でもトランザクションログを記録する。
ロールバック可能である。 - AUTO_INCREMENTは維持する。
- WHERE句等で条件指定可能である。
条件付き削除やロールバックの可能性がある場合は、DELETE文を使用する。
TRUNCATE
- テーブル全体を一括で高速に削除する。
- トランザクションログを最小限に抑える。
ロールバック不可となる。 - AUTO_INCREMENTを初期化する。
- WHERE句等が使用できない。
全レコード削除が確実であることやロールバック不要な場合は、TRUNCATE文を使用する。