postgresql COUNT(DISTINCT ...) が非常に遅い 質問する

postgresql COUNT(DISTINCT ...) が非常に遅い 質問する

非常に単純な SQL クエリがあります:

SELECT COUNT(DISTINCT x) FROM table;

私のテーブルには約150万行あります。このクエリはかなり遅く実行されており、約7.5秒かかります。

 SELECT COUNT(x) FROM table;

これには約 435 ミリ秒かかります。パフォーマンスを向上させるためにクエリを変更する方法はありますか? グループ化と通常のカウント、および x にインデックスを付けることを試しましたが、どちらも実行時間は 7.5 秒で同じです。

ベストアンサー1

これを使用することができます:

SELECT COUNT(*) FROM (SELECT DISTINCT column_name FROM table_name) AS temp;

これは以下よりもはるかに高速です:

COUNT(DISTINCT column_name)

おすすめ記事