【问题标题】:MySQL Query still executing after a day..?一天后 MySQL 查询仍在执行..?
【发布时间】:2010-06-01 22:38:36
【问题描述】:

我正在尝试隔离 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)

【问题讨论】:

    标签: macos mysql hung


    【解决方案1】:

    你可以这样做:

    alter ignore table items add unique index(title); 
    

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

    【讨论】:

    • 不错的解决方案!必须在索引之前将任何 TEXT 或 BLOB 字段更改为 VARCHAR。谢谢!
    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多