当前位置: 首页 > 编程笔记 >

高效快速地删除 mysql 重复数据

邹胜泫
2023-03-14
本文向大家介绍高效快速地删除 mysql 重复数据,包括了高效快速地删除 mysql 重复数据的使用技巧和注意事项,需要的朋友参考一下

MYSQL数据库中单表有几百万数据,使用几种delete方法删除重复的数据耗时比较长,运行语句,半天出不来,甚至出现服务器内部错误。
mysql 给表添加唯一索引 完成重复记录删除

不希望数据表中有重复记录的时候我们可以给表添加一个联合唯一索引
例如,user表中有user_id,user_name两个字段,如果不希望有两条一摸一样的的user_id和user_name,我们可以给user表添加两个字段的联合唯一索引:

alter table user add unique index(user_id,user_name);

这样当向表中添加相同记录的时候,会返回1062的添加失败信息。
但是有一种情况是表中已经有n个重复的记录,这时候我们才想起来要添加唯一索引,再执行上面的操作时,数据库会告诉你已经有重复的记录了,建立索引失败,这时候,我们可以用下面的操作:

alter ignore table user add unique index(user_id,user_name);

它会删除重复的记录(别怕,会保留一条),然后建立唯一索引,高效而且人性化。

如果没有可以联合建立索引字段,可以新建一个空字段,然后在建立唯一的联合索引。

 类似资料:
  • 问题内容: 我有大的(>百万行)MySQL数据库被重复弄乱了。我认为这可能是充满它们的整个数据库的1/4到1/2。我需要快速摆脱它们(我是指查询执行时间)。外观如下: id(索引)| text1 | text2 | text3 text1&text2组合应该是唯一的,如果有重复项,则仅应保留一个text3 NOT NULL组合。例: …成为: 新的id可以是任何东西,它们不依赖于旧表的id。 我已

  • 本文向大家介绍Mysql删除重复的数据 Mysql数据去重复,包括了Mysql删除重复的数据 Mysql数据去重复的使用技巧和注意事项,需要的朋友参考一下 MySQL数据库中查询重复数据 select * from employee group by emp_name having count (*)>1; Mysql  查询可以删除的重复数据 select t1.* from employee

  • 本文向大家介绍删除MySQL重复数据的方法,包括了删除MySQL重复数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了删除MySQL重复数据的方法。分享给大家供大家参考。具体方法如下: 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据。因为在采集中,对于同一台设备,同一个时间点应该只有一个数据,然而,数据库中存入了多个

  • 问题内容: 我有一个注释表,其结构如下: 我有很多重复的评论,名字和电子邮件都一样。我需要删除它们,有人可以建议我如何使用一个查询来实现此目标吗? 谢谢 问题答案:

  • 问题内容: 我正在尝试使用Duke快速重复数据删除引擎在我工作的公司的数据库中搜索一些重复的记录。 我从命令行这样运行它: 但我得到一个错误: 我的配置文件如下所示: 它并没有真正告诉我不支持的功能…我只是在尝试,对配置没有什么要求。 问题答案: 正如mbonaci所说,问题是未实现JDBC驱动程序的isClosed()方法。即使实现它,也比简单地编写“ return close”更为困难。 我为

  • 问题内容: 我正在尝试使用Duke快速重复数据删除引擎在我工作的公司的数据库中搜索一些重复的记录。 我从命令行这样运行它: 但我得到一个错误: 我的配置文件如下所示: 它并没有真正告诉我不支持的功能…我只是在尝试,对配置没有什么要求。 问题答案: 正如mbonaci所说,问题是未实现JDBC驱动程序的isClosed()方法。即使实现它,也比简单地编写“ return close”更为困难。 我为