mysql - 如何更快地删除重复项?

标签 mysql sql sql-delete

在大约有 170 万行的表上,我尝试删除重复的帖子:

delete a FROM comment a
  INNER JOIN comment a2
     WHERE a.id < a2.id
     AND   a.body = a2.body;

结果是:

  Query OK, 35071 rows affected (5 hours 36 min 48.79 sec)

这发生在我几乎空闲的工作站上,该工作站配备 Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz。 我想知道是否有一些技巧可以使删除操作更快?

最佳答案

下面的查询将对您有用。

Delete  YourTableName 
From    (
Select  row_number() over(Partition by ColName1,ColName2,ColName3 order by ColName1,ColName2,ColName3 Asc)As RowNumber
        )YourTableName
Where   YourTableName.RowNumber>1

如果有效,请标记为答案

关于mysql - 如何更快地删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56492012/

相关文章:

mysql - 半径接受所有,但拒绝客户端?

php - 阿拉伯语单词上的 MySQL SELECT 在 PHP 上返回 0 结果,但在 SQLBuddy/phpMyAdmin 上返回 0 结果

php - 没有错误,但是我的记录没有被添加到我的数据库中

mysql - 选择前 3 个最多计数组 - SQL

java - 使两列在sqlite中唯一

mysql - memsql多表删除,可以吗?

php - 使用 AJAX/jQuery 删除 mysql 中的行(Zend Framework 1.12)

mysql - 将多个表与主表连接起来

sql - 在 Access 2007 中删除多个表中的记录

php - 内连接表时执行删除