【SQL】truncateとdelete
DELETE FROM `テーブル名`
と
TRUNCATE `テーブル名`
の違いについて。
①権限
DELETEは1行ずつ削除するためにdelete権限が必要。DML。
元に戻すためにログも書いているので、実行すると遅い。
TRUNCATEは、DROP TABLEしてから再作成しているため、
DROP権限が必要。DDL。ログ等も書いていないため、
速度は一般的に早い。
②auto incrementについて
DELETEは以前の値を保持している。
TRUNCATEは初期化する。
ちなみに、phpMyAdminの「空にする」はTRUNCATE。