7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

論理削除と物理削除の違い

Posted at

勉強前イメージ

完全にサーバから消すか、戻せる状態で削除するのかの違い・・かと
でも、DBのdelete以外何で削除するんだろう

調査

論理削除 とは

実際にデータを削除せずに、論理的に削除する方法
論理的とは、テーブルに削除フラグのカラムを追加し、true or falseで削除されているかされていないか管理する方法

例が以下になります。
ユーザID(user_id)とユーザ名(user_name)を管理しており、最後に削除フラグ(delete_flag)のカラムが存在します。
存在するユーザには delete_flag=false が記載されていますが、
削除されたユーザには delete_flag=true が記載されています。

このように削除フラグで管理することを 論理削除 と呼びます

user_id user_name delete_flag
1 kimura false
2 suzuki true
3 sato true
4 matsui false
  • メリット

    • 誤って削除した場合に簡単に戻せる(システムでのバグも同様)
  • デメリット

    • 実際にデータが削除されず、容量の圧迫や性能低下につながる
    • 管理するカラムを追加する必要がある
    • ゴミが残る

物理削除 とは

実際にデータベースからデータを削除する方法で、DBから delete コマンドで削除を行う
論理削除とは違い、実際にデータベースからデータが削除されます

  • メリット
    • ゴミが残らず、管理がしやすい
    • 管理するカラムがないので、実装のときにバグが出にくい
  • デメリット
    • 誤って削除した場合にはデータの復元が容易ではない(バックアップから戻したり等しないといけない)

勉強後イメージ

実際に使ってたけど、論理削除・物理削除って言うのを知らなかった・・・
何でもかんでも論理削除してたらゴミがすごいことになっちゃうかも

参考

7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?