快速删除大数据量表

梦里梦外; 2022-05-15 08:19 317阅读 0赞
需求:

要清空表中数据,现有一个100w以上的表,开始使用delete from t_name进行删除,发现太慢了,足足等了8分钟,如果数据更大,则无法想象。

可用如下方法进行删除

假设要删除的源表为SOURCE_T

1、生成中间表
  1. create table SOURCE_T_M as select * from SOURCE_T where id = '111' --随便指定一条符合条件的数据
2、修改表名
  1. rename SOURCE_T to SOURCE_T_B; --将源表改为其他名字
  2. rename SOURCE_T_M to SOURCE_T; --将中间表改名为源表
3、删除表
  1. drop table SOURCE_T_B; --删除那个被你改为其他名字的表
  2. delete from SOURCE_T; --此时表中只有一条数据,删除即可

作者:itmyhome

发表评论

表情:
评论列表 (有 0 条评论,317人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据删除的思考(二)

    在这个简短系列的第1部分中,我提供了两个场景的非正式描述,在这些场景中,我们可以从表中进行大规模删除。没有一个具体的例子,很难想象删除数据的性质和可用的访问路径会产生大数据量删

    相关 快速删除数据

    需求: 要清空表中数据,现有一个100w以上的表,开始使用delete from t\_name进行删除,发现太慢了,足足等了8分钟,如果数据更大,则无法想象。 可用如