このクエリを実行しています。
SELECT dom,
COUNT(url) AS counted
FROM results
GROUP BY dom
ORDER BY COUNT(url) DESC;
domインデックスを作成しましたが、長いテキストであるためURLをインデックスできません。それを速くするために私は何ができますか?
このクエリを実行しています。
SELECT dom,
COUNT(url) AS counted
FROM results
GROUP BY dom
ORDER BY COUNT(url) DESC;
domインデックスを作成しましたが、長いテキストであるためURLをインデックスできません。それを速くするために私は何ができますか?
これを試して:
SELECT dom,
COUNT(url) AS counted
FROM results
GROUP BY dom
ORDER BY counted DESC;
domへのURLがほとんどないと仮定すると、問題にはならないはずです。domごとにURLがたくさんある場合、カウントは高くつきます。
count(url)は、urlフィールドがnullではない行をカウントすることを意味します。おそらく、次のようにパフォーマンスの作成とインデックス作成を向上させることができます。
create index idx__1 on results (dom, url (1));
次に、クエリを次のように変更します。
SELECT dom,
COUNT( left(url,1)) AS counted
FROM results
GROUP BY dom
ORDER BY counted DESC;
リストされた両方のフィールドのみを要求する場合、RDBMSはインデックスのみを必要とし、テーブルからデータを取得する必要はありません。