我正在尝试在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)
答案 0 :(得分:1)
你可以这样做:
alter ignore table items add unique index(title);
这将添加一个唯一索引,同时删除任何重复项,这将防止任何未来的重复发生。确保在运行此命令之前进行备份。