mysql 删除重复索引_使用唯一索引方法删除mysql重复记录

前两天由于操作失误,将线上的数据库一表中插入了近六万条的重复记录,其中有用的数据也就几千条。那几万 条的重复数据的删除是个问题,因为整个表现在已经有二十多万的数据,一开始使用两个select 加group by来进行分组后删除,不过语句执行不了,一运行那mysql直接卡掉了…

不知为什么二十万的数据就能直接把mysql给搞死。。。难道语句有问题?后来又试了下使用left join 更是坑爹。。。作为一个菜鸟,还是应该多问baidu和google。在网上找了个方法可以直接解决这些重复数据的删除问题,虽然可能这个方法不是很好,但最起码解决了我的问题。

方法是使用唯一索引这个功能,给重复的那个字段创建唯一索引来让mysql自动删除重复记录,具体语句实例如下:

alter ignore table yourtablename add unique idx_name (test);

这里是给yourtablename表中的test字段创建唯一索引的语句,运行后会将test字段的值变成唯一,重复的数据都将会被删除。

由于我是只删除某一时段的数据,所以我这里使用的是一个笨办法,先将原表导出,将这个区间内的所有insert记录都剪贴出来导入本地库中,然后执行上面的语句创建唯一索引,执行后将结果导出,把insert 的记录语句重新贴回去,再导入线上库中完成!

操作数据库时切记进行备份!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值