Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie unikalnych wartości, Optymalizacja
snapshot
post
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 6
Dołączył: 22.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Chcę wyciągnąć ilość unikalnych osób, które głosowały. Zakładamy, że użytkownik może głosować kilka razy.
  1. SELECT COUNT(DISTINCT user) FROM vote WHERE type = 5

Powyższe zapytanie działa tak jak chcę, jednak czas wykonywania jest nie do zaakceptowania i wynosi 0.8-1.0 sekundy. Dodam, że tabela posiada aktualnie około 600 000 rekordów. Da się szybciej? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
snapshot
post
Post #2





Grupa: Zarejestrowani
Postów: 96
Pomógł: 6
Dołączył: 22.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Wpadłem na to sam @wookieb i faktycznie działa. Mam teraz 0.02. Dzięki. Jednak mam kolejny problem. Muszę podczas realizacji innego scenariusza (unikalne grupy) podłączyć inną tabelę:
  1. SELECT COUNT(DISTINCT u.team) FROM vote v INNER JOIN user u USING(user) WHERE v.type = 5

Czas wykonywania to znowu ~1 sekundy. Analogicznie dodałbym index na dwóch kolumnach w dwóch różnych tabelach, ale chyba się nie da...

Ten post edytował snapshot 24.05.2011, 11:36:50
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 16:54