1

500MB のデータベースで重複を分離しようとしていますが、2 つの方法を試しました。新しいテーブルの作成とグループ化:

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

しかし、それは 1 時間実行されており、MySQL 管理者ではステータスがロックされていると表示されます。

私が試した他の方法は、これで重複を削除することでした:

 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 に答える