Proč je tenhle distinct select tak pomalej? rubrika: Databáze: SQL

3 jan_4
položil/-a 16.12.2015

Ahoj,

potřeboval bych poradit s optimalizací tohoto dotazu:

SELECT event, movie_id, COUNT(DISTINCT email) AS count FROM log WHERE movie_id IN (13,12,11,10,8,7,6,5,4,3,2,1) GROUP BY event, movie_id;

Potřebuju dostat zpátky podobný výsledek (a dostávám):

watch 1 1
watch 2 585
watch 3 380
open 1 4
open 2 1650
open 3 1445
......

Indexy jsou nad event, movie_id i email.

Nad tabulkou s 635 000 záznamy tohle trvá 63 vteřin, když jsou v query obsaženy všechny movie_id. Většinu času zabere "Creating sort index", přestože tu žádný order by není.

Díky za radu.

Komentáře

  • vojtech.kurka : "přestože tu žádný order by není" - GROUP BY sam o sobe je prakticky ORDER BY :) 16.12.2015
odkaz Vyřešeno
3 jan_4
odpověděl/-a 16.12.2015

Omlouvám se, unáhlil jsem se s otázkou.

Chtělo to jen vytvořit společný index nad event a movie_id.

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.