<分区>
我想从 Mysql 表中删除所有重复的行。
但问题是我不知道哪些行是重复的。
这个Mysql表包含了大约500000行的大数据。
其中有些行是重复的。
请指导我该怎么做。
更新:
我需要在 phpMyAdmin 中运行的 SQL 查询。
这是一个粗略的表格。
假设表名是 foo。
+---------------------------------------------------------------------+
| id | link | title | description |
+---------------------------------------------------------------------+
| 1 | google | search engine | search here free |
| 2 | yahoo | also search engine | findout web easily |
| 3 | Facebook| connect with world | meet with world |
| 4 | google | search engine | search here free |
| 5 | msn | Microsoft network | network by MS |
| 6 | google | search engine | search here free |
| 7 | msn | Microsoft network | network by MS |
| 8 | yahoo | also search engine | findout web easily |
| 9 | myweb | my website | ideal website |
|... | .... | .....continue.... | ..... ... ..... |
+---------------------------------------------------------------------+
这是一张粗略的表格,我无法完全定义我的表格,因为它大约有 500000
行。希望这能理解你我想要的。
我这样粗略地查询。
DELECT all duplicate rows FROM foo
编辑
我看到这个问题被标记为重复。但我认为它是唯一的。与此链接你比较它 dulpicate。我看到这个链接,有一个答案被标记为对小尺寸表有用,它改变索引并使唯一指数。这是它的代码
ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company );
如果你在这之后运行这个查询,当你添加任何数据时,Mysql 检查它是否已经存在,如果存在,它会停止添加这个。
我已经告诉过你,如果使用这个查询和之后,我的表包含大量数据
我在我的表中添加一个结果,它检查我的整个表,其中大约 500000 行以使其具有唯一性,这使它变慢。如果这是 10,那么它只是一个新记录,或者如果我想输入 100000 条新记录,你的想法是什么它让它变得太慢了。
我看到其他答案大部分都包含 HAVING
类。它已经很慢了。