《MySQL|数据库记录删除方式介绍》要点:
本文介绍了MySQL|数据库记录删除方式介绍,希望对您有用。如果有疑问,可以联系我们。
删除数据库记录是一个非常常见的需求,当数据失去价值时,我们便会删除它,但是如果操作欠妥,往往就会把一些有价值的数据误删掉,造成重要数据的丢失,合理采用删除方式才能更好地利用数据资源,下面介绍几种常用的删除方式.
物理删除
物理删除便是直接从数据库中删除一条或多条记录,将数据从磁盘上擦除,可以使用 DELETE FROM SQL语句实现,这种方式产生的后果便是记录永久性删除,无法找回,一般适用于小型或数据重要性不高的项目,可以提高数据库资源利用率.物理删除方式是一种最简单最基本的数据删除方式,这里不多做介绍,我们主要来看一下逻辑删除方式.
逻辑删除
所谓的逻辑删除就是实现记录已删除的效果,但实际上数据仍然存在于数据库中,只是对用户暗藏这一部分数据.一些大型的、数据关联性高、数据重要性高的应用往往会采用这种删除方式,它可以实现回收站、删除恢复、查看历史版本等实用功能,根据业务的需要有不同的应用场景.
应用场景
例如,在一些邮箱应用中,当你删除一条邮件时,不会将邮件直接删除,而是把邮件移动到回收站,你可以在回收站中对邮件进行恢复、彻底删除等操作,可以有效防止误删等情况.
再比如博客管理平台一般都会提供查看修改历史、比拟历史版本等功能,我们可以方便地查看文章的修改历史,以及恢复到之前某一版本.
标志删除
采用删除标记的方式可以很容易地实现逻辑删除功能,通过在表中添加一个删除标记字段,将正常记录的该字段设置为0,已删除记录的该字段设置为1,查询时添加一个where条件筛选删除标记为0的记录,就可以实现逻辑删除的功能,此时的删除业务只必要将记录的删除标记字段修改为1即可.
拉链
拉链方式来源于数据仓库,是针对数据仓库设计中表存储数据的方式而定义的,所谓拉链,便是记录历史,记录一个事物从开始到当前状态的所有变化信息.拉链算法是目前数据仓库领域最典型的算法之一.
这种方式的表结构与普通表的区别在于多了两个字段(START_DATE&END_DATE)表现记录的有效时间,分别为记录添加时间和记录最大有效时间.
-- 获取版本列表
select start_date from table_name where id=记录ID order by start_date;
-- 查看特定版本内容
select * from table_name where id=记录ID and start_date=版今天期;
```
不同的业务需要根据其应用场景来选择合适的数据删除方式,一般的应用可以采用物理删除的方式,简单粗暴地将数据擦除,这样可以有效提高数据库地利用率,如果历史数据一点价值都没有或者价值不高,那还留着干什么,这时如果采用逻辑删除地方式反而加重了数据库的负担,浪费了大量名贵的资源.但是有些项目如金融、交通、能源等领域的历史数据,往往具有很高的利用价值,通过对这些数据进行分析总结,可以更好的了解该领域的发展情况和健康程度,以及对未来的发展规划起到一定指导作用,这时就要采用逻辑删除的方式,虽然数据管理平台为了便于管理,删除了过期的数据,但数据分析系统仍能从数据库中获取到历史数据,通过抽取转换加载的过程,将历史数据转化为高价值的内容,这是目前信息技术发展的主要趋势.
本文为作者kMacro原创,转载请注明来源:http://www.jianshu.com/p/b22b7bc207a6.
·找工作难?那是你没选对行业!
· 2017年【中公教育】特别推出2017年就业促进计划,500万就业基金助你成为IT达人
详情请戳:http//www.ujiuye.com/zt/jycj/?wt.bd=bgz
· 什么?海量IT学习材料白给你都不要?别想了,加群抢:584539956
欢迎参与《MySQL|数据库记录删除方式介绍》讨论,分享您的想法,维易PHP学院为您提供专业教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7897.html