经过一年多的运行,历史数据和过程化数据越积越多,准备清除一下。[有选择删除]
但有个表删除数据很慢,发现它的索引和外键(5个)都比较多,请问主要是什么原因导致的?我应该采用什么措施?
谢谢!
直接drop table tablename不行吗
有这方面的原因
同时,delete 操作占用的回滚段非常大,因为要考虑到rollback的情况
所以,可以考虑分段删除,比如删除某段时间的数据,执行一次commit操作。然后接着删除。
应该会好一些,避免出现会滚不够的情况。
在删除表中记录的时候有索引会减慢速度
可以先删除索引和外键后再加上,要注意先后顺序。
建议把要保留的数据生成临时表,truncate掉原数据,然后再把临时表的数据insert回来
新建一表和旧数据表结构相同,然后把旧表中的有用数据插入新表.旧表drop.