如何去除大量数据表中的重复数据?

有个数据库有200W条数据。需要给这个表去重。

操作

方法1:

我整理了一下逻辑:

  1. 创建一个和A表一模一样的B表。
  2. 将A表的数据去重,导入到B表。
  3. 将A表进行更名。
  4. 将B表更名为A表。

方法2

  1. 将A表数据导出成为sql/csv等格式
  2. 然后建立一个新表B进行导入
  3. 将A表更名为C
  4. 将B表更名为A

问题

  1. 方法1 insert的时候会引入渐进锁,最后会导致整个表锁表。如果数据量过大锁表的时间也会很久。需要按照一个可区分字段进行区分。第二个方式不会引入锁表,但是无事务导致数据和时间点有一定的差异,会丢失一部分数据
  2. 新建的表需要继承上一个表的索引,不然会导致查询缓慢
  3. 线上进行大表更替风险和收益不成正比,很容易导致一些不可逆的后果;有实际业务,影响计费、流量、采集等重要参数,建议重复值留着。对测试环境可以操作

但是:这个速度是真的快。
手快一点,基本上十分钟完事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值