如何规划系统的删除数据操作

[复制链接]
查看11 | 回复4 | 2013-7-31 19:53:35 | 显示全部楼层 |阅读模式
业务系统都有对数据删除的操作,一般分为两种:
1.逻辑删除(表上用一个删除标志字段 例如:del_flag=1),好处:是可以保留删除数据的现场,防止误删除可以快速恢复,坏处:每次select时都要加上del_flag作为条件,对性能有影响。
2.物理删除,delete语句直接删除,好处:select语句不需要其它的考虑,坏处:误删除恢复问题(这个可以用删除记录日志解决)、如果要删除一个主表行,这个主库有20几个关联的子表,而且子表上是多对一(子表1000条记录关联主表1条记录),如果都记录日志,那么工作量太大了。
我想请教一下,还有什么好办法吗,大家如何规划删除操作?
如果使用逻辑删除,用del_flag做分区怎么样?


回复

使用道具 举报

千问 | 2013-7-31 19:53:35 | 显示全部楼层
这是系统设计的问题, 当初怎么打算的?
回复

使用道具 举报

千问 | 2013-7-31 19:53:35 | 显示全部楼层
ZALBB 发表于 2014-11-8 10:42
这是系统设计的问题, 当初怎么打算的?

现在是逻辑删除的,但3年过去了发现select查询时速度慢了。
回复

使用道具 举报

千问 | 2013-7-31 19:53:35 | 显示全部楼层
zhangdberic 发表于 2014-11-8 10:57
现在是逻辑删除的,但3年过去了发现select查询时速度慢了。

为什么会慢,什么原因? 确定是这些废弃的数据导致?
回复

使用道具 举报

千问 | 2013-7-31 19:53:35 | 显示全部楼层
ZALBB 发表于 2014-11-8 11:13
为什么会慢,什么原因? 确定是这些废弃的数据导致?

因为数据库没有区分OLTP和OLAP所有的查找都访问一个数据库,很多常用界面是分页查询,表和表关联,主界面基本都是列表显示,当初设计确实有问题,现在要做二期系统 ,因此拿不定主意。想问问如果重新设置有没有什么更好的方案,多谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行