标准SQL的DELETE语句,删除数据是彻底删除还是只是做了删除标记,其实并未进行物理删除?

[复制链接]
查看11 | 回复5 | 2010-9-29 13:36:27 | 显示全部楼层 |阅读模式
如果是做标记的话,什么时候会被真正删除?

回复

使用道具 举报

千问 | 2010-9-29 13:36:27 | 显示全部楼层
对数据的修改首先是记录到日志文件中,发生检查点进程时才会从日志同步到数据文件。从日志同步到数据文件后,数据就删除了,只是磁盘空间不会释放出来,需要压缩数据文件才可以。数据恢复的话要依赖于日志了。
回复

使用道具 举报

千问 | 2010-9-29 13:36:27 | 显示全部楼层
从性能的角度来说, 都是先做个 删除标记, 标记该 记录所占用的空间 可用有新的记录插入的时候,可能就会覆盖掉这个区域.
回复

使用道具 举报

千问 | 2010-9-29 13:36:27 | 显示全部楼层
我记得只有foxpro才是先做标记再删除的,而sql server等数据库都是在事务提交的时候就把数据删除掉了。
回复

使用道具 举报

千问 | 2010-9-29 13:36:27 | 显示全部楼层
你的delete是否带了where条件?如果带了条件, 确认是否有符合这个条件的数据另外,确认你连接的数据库是否是你需要操作的数据库
确认你的delete没有报错 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!vaela
回复

使用道具 举报

千问 | 2010-9-29 13:36:27 | 显示全部楼层
Drop table 是直接删除 而 DELETE TABLE 是先预留删除空间做删除标记,而不删除表
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行