相信很多人都听过删库跑路
这个词,用搜索引擎检索删库跑路
,可以看到很多程序员删库跑路的讨论和新闻。
但是,严格来讲,大部分程序员想删库跑路
也做不到。为什么呢?因为没有数据库的删除权限。——真正能删库跑路
的是运维,再准确点DBA。
那么平时业务中的删除是怎么做的呢?答案是逻辑删除
。
逻辑删除:又名软删除,与物理删除、硬删除相对应,含义是并没有实际的删除数据,只是将数据标记已删除
(例如增加is_deleted字段)。
物理删除
很好理解,就是真的把数据给删了。
以MysqL为例,假如数据删了,应该怎么恢复呢?主要方式有两种。
利用 binlog 日志
binlog是记录所有数据库表结构变更(例如CREATE、ALTER table…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。
使用binlog恢复数据,本质上就是通过binlog找到所有DML *** 作,去掉错误的SQL语句,然后执行其它的SQL语句,就可以将数据恢复。
binlog恢复数据示意图如下:
可以看到,恢复时候不仅需要停掉数据库,假如数据量大的话,去筛选恢复数据sql就 总结
以上是内存溢出为你收集整理的数据库,逻辑删还是物理删?全部内容,希望文章能够帮你解决数据库,逻辑删还是物理删?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)