1

我正在尝试隔离 500MB 数据库中的重复项,并尝试了两种方法来做到这一点。一个创建新表并分组:

CREATE TABLE test_table as
SELECT * FROM items WHERE 1 GROUP BY title;

但它已经运行了一个小时,在 MySQL Admin 中它说状态是 Locked。

我尝试的另一种方法是使用以下方法删除重复项:

 DELETE bad_rows.*
        from items as bad_rows
        inner join (
                select post_title, MIN(id) as min_id
                from items
                group by title
                having count(*) > 1
        ) as good_rows on good_rows.post_title = bad_rows.post_title;

..这已经运行了 24 小时,管理员告诉我它正在发送数据...

您认为其中一个或这些查询实际上仍在运行吗?怎么判断是不是挂了?(使用 Apple OS X 10.5.7)

4

1 回答 1

1

你可以这样做:

alter ignore table items add unique index(title); 

这将添加一个唯一索引并同时删除任何重复项,这将防止将来发生任何重复项。确保在运行此命令之前进行备份。

于 2010-06-01T14:32:09.447 回答