【MySQL】DELETE、TRUNCATE、DROPのお話

2022.04.02

記事画像
みなさん、こんにちは エンジニアの高橋です。 本日はMySQLのDELETE、TRUNCATE、DROPについてお話したいと思います。 少しMySQLを勉強すればDELETE、TRUNCATE、DROPがデータを削除するクエリだと分かりますがそれぞれどういった違いがあるのかご存知でしょうか?? ◆ DELETE ・WHERE句を用いることで特定のレコードを削除できる。 ・ROLLBACKすることによって処理が取り消される。 ・処理時間が長い。 -> INDEXが貼られたテーブルだと、INDEXの書き換えが行われるため遅い -> ROLLBACKにも対応するため、削除したデータを保持する必要があるため遅い。 ◆ TRUNCATE ・全てのレコードが削除される。 ・ROLLBACKしても処理は取り消されません。 ・処理時間が短い。 ◆ DROP ・全てのレコードを削除し、さらにテーブルまで削除する。 ・ROLLBACKしても処理は取り消されません。 ・処理時間が短い。 データを削除する際はそれぞれどういった挙動なのかを意識して使うように心がけましょう。

この記事を書いた人

高橋 希望

入社10年目の元不動産営業、現ゲームエンジニア 得意言語はphp,javascript,python,elixirなど