teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

質問内容が明確ではなかったため追記しました

2019/11/25 09:38

投稿

kuuritar
kuuritar

スコア38

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,13 @@
26
26
 
27
27
  ### 解決したいこと
28
28
  どうにか`DISTINCT`以外を利用して高速化させたいのですが、何か良い案はありますか?
29
- ここまでシンプルなものだとこれ以上早くはできないでしょうか?
29
+ ここまでシンプルなものだとこれ以上早くはできないでしょうか?
30
+
31
+ ### 追記
32
+ すみません、少し質問内容がふわっとしていたので追記させてください。
33
+
34
+ 今回はIndex等は考慮せず(全てのカラムにIndexはないものとして)、`上記テーブルでユニークなemail数を調べたい`という要件を満たす最速のクエリが知りたいというのが質問になります。
35
+ レコード数が多い場合、`SELECT COUNT(email) FROM users`より`SELECT COUNT(distinct email) FROM users`の方が遅いのは明らかで、`SELECT COUNT(distinct email) FROM users`より早い`ユニークなemail数を調べたい`という要件を満たすクエリが知りたいです。
36
+ 単純にないというのであれば別のアプローチ(Indexの見直し等)を行おうと思っています。
37
+
38
+ それでもexplainの結果等があった方が良いというのであれば追記します。