MySQL5逆引き大全460の極意

データ操作命令(SELECT以外)の極意 - Tips107 テーブルの全データを高速に削除するには

登録タグ
SQL
Icon comment count 0
Icon stock count 0

5-3削除Tips107 テーブルの全データを高速に削除するには

Level1

PointTRUNCATE命令を利用します

構文   
TRUNCATE [TABLE] テーブル名

TRUNCATE命令は、WHERE句を持たないDELETE命令と(見かけ上)同様の動作をしますが、以下の点でDELETE命令とは異なる特徴を持っています。

  • 削除処理に際しては、テーブルそのものが破棄され、再作成されます(外部キー制約が設定されている場合を除く)
  • トランザクションセーフではない(実行中のトランザクションがある場合、テーブルがロックされている場合にはエラー)
  • 削除されたレコード数は通知されない
  • ON DELETEトリガは呼び出さない

これらの特性によって、TRUNCATE命令はDELETE命令に比べると、より高速にデータを削除することが可能です。

TRUNCATE TABLE命令は、MySQL 5.1.16以降ではDROP権限を必要とします(5.1.16より前のバージョンではDELETE権限を要求します)。

出典情報

Medium

MySQL5逆引き大全460の極意

  • 著者: 山田 祥寛

コメント

    コメントはありません