网站建设后怎么,新网站怎么做seo,cnzz网站建设,兰州网络科技公司有哪些概念
逻辑删除#xff1a;逻辑删除并不是真正的删除#xff0c;而是将表中列所对应的状态字段#xff08;status#xff09;做修改操作#xff0c;实际上并未删除目标列数据或恢复这些列占用的磁盘空间。比如0是未删除#xff0c;1是删除。在逻辑上数据是被删除了#…概念
逻辑删除逻辑删除并不是真正的删除而是将表中列所对应的状态字段status做修改操作实际上并未删除目标列数据或恢复这些列占用的磁盘空间。比如0是未删除1是删除。在逻辑上数据是被删除了但是数据本身还在数据库中只是不进行对外提供了逻辑删除的本质是修改操作将is_delete的值进行0和1之间的修改。
例如电脑的回收站使用的原理就是逻辑删除。删除的文件进入回收站的本质只是在操作系统的帮助下对文件加上了某种标记资源管理器对这种含有标记的文件不显示。当回收站恢复的时候即移除这种标记。当清空回收站的时候进行的是物理删除。一般的商城网站使用的是逻辑删除来操作数据库。
物理删除使用delete、truncate、drop语句删除数据物理删除就是把数据从硬盘中删除释放空间缩小体积对性能的提升有帮助 II.缺点 物理删除是从根源上面删除几乎无法恢复数据 物理删除会造成主键不连续分页查询数据慢 III. 应用的地方 核心的业务表不用物理查询
实操
仍然使用之前建立的数据表进行测试直达链接Oracle中新建数据表的两种方法单击进入文章
逻辑删除语法 --逻辑删除一列
alter table JT_CS.STUINFO_01 set unused (ENROLDATE) ONLINE;
--逻辑删除两列
alter table JT_CS.STUINFO_01 set unused (CLASSNO, ENROLDATE);
可以从DBA_UNUSED_COL_TABS视图查看每个表中未使用的列的数量
select * from DBA_UNUSED_COL_TABS; 完成此操作后再次查询表JT_CS.STUINFO_01将不再看到刚刚逻辑删除的列。如果以后有时间物理删除列可以使用以下方法完成语法如下
--语句是对未使用的列唯一允许的操作。它从表中物理删除未使用的列并回收磁盘空间。
alter table table_name drop unused columns ONLINE ;--该子句导致在处理指定数量的行后应用检查点在本例中为 1000。
--检查点减少了删除列操作期间累积的undo日志量以避免undo空间的潜在耗尽。
alter table table_name drop unused columns checkpoint XX; 物理删除语法
--物理删除单列
alter table table_name drop column column_name;
--物理删除多列
alter table table_name drop (column_name1, column_name2);
例如现在我要物理删除数据表JT_CS.STUINFO_01里的SEX、AGE两列字段和单独删除一个字段IDNUMBER。
原始数据 --物理删除单列
alter table JT_CS.STUINFO_01 drop column IDNUMBER;
--物理删除多列
alter table JT_CS.STUINFO_01 drop (SEX, AGE);
现在我们来查下DBA_UNUSED_COL_TABS视图看下刚刚逻辑删除未使用的列还存在吗 经查询逻辑删除未使用的列已经不存在空结果集。
结论从表中物理删除一列将导致该表中所有未使用的列同时被删除即有set unused 的列将被删除。 注意大表一般不用这种方法删除对业务影响太严重在及时性要求不高的情况下小表可以这么操作。