0

サブジェクト テーブルには 3,000 万行あります。重複を見つけるためにクエリを実行していますhashhashと定義されている

 `hash` varchar(50) NOT NULL;

クエリは

SELECT Count(*)
FROM   (SELECT Count(id) `num`,
               `signature`
        FROM   `images`
        WHERE  `hash` IS NOT NULL
        GROUP  BY `hash`
        HAVING `num` > 1) AS `count_table`  

Ctrl+Cクエリを中止するように押すまでに、約 5 ~ 7 分かかります。もう一度実行しましたが、それほど長く待つことができませんでした。

どうすればこの結果をより速く得ることができますか?

グループバイをしている間、これは少し遅くなるでしょう。でも8分は長すぎると思います。

4

3 に答える 3

1

重複エントリの数だけが必要な場合は、試すことができます

select count(*)-count(distinct hash) from images
于 2013-08-29T11:14:14.853 に答える