Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> LIMIT z DISTINTC-em tak bardzo obciąża bazę?
aladin07
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 22.07.2007

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


mam tabele w bazie i w niej 5,5mln wpisow i dziwi mnie ze wyszukanie (ponizej szczegoly)
z zastosowaniem limitu jest tak znaczaco dluzsze

  1. SELECT DISTINCT country FROM kolumna

trwa 0,045 sekundy

a wersja
  1. SELECT DISTINCT country FROM kolumna LIMIT 10

trwa juz ponad 15sek.
a to juz kosmos
w sumie index ma sile 19 bo tylko tyle krajow jest w tej kolumnie

czy to normalne jest czy ja mam jakis dziwny problem

Ten post edytował aladin07 6.07.2009, 14:41:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A daj explain i pokaż, co zwraca.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
aladin07
post
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 22.07.2007

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


Query explain select distinct country from kolumna limit 10, Tue Jul 07 09:12:47 2009
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE kolumna index country 138 3179 Using index; Using temporary


Query explain select distinct country from kolumna, Tue Jul 07 09:14:23 2009
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE kolumna range country 138 3179 Using index for group-by
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
1 SIMPLE kolumna index country 138 3179 Using index; Using temporary

Cytat
1 SIMPLE kolumna range country 138 3179 Using index for group-by

Wyciąganie do tabeli tymczasowej zawsze będzie wolniejsze.

A które zapytania "wyjaśniałeś"?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
aladin07
post
Post #5





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 22.07.2007

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


no to jest wyjasnienie jednego i drugiego - zalaczylem caly kod

w takim razie jak sie pozbyc tej tymczasowej tabeli?
Go to the top of the page
+Quote Post
alegorn
post
Post #6





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


mysle ze to nie kwestia zapytania, ale juz wydajnosci bazy (mysql? ) przy takiej ilosci warto by bylo pomyslec o postgres ?
na dobra sprawe zapytanie ma co przemielic.... wyszukaj unikaty z 5,5mln...

mozna by bylo pomyslec o normalizacji bazy, tak do 3 postaci (min 2), wywal wszystkie atomowe wartosci do zewn tabeli... powinno pomoc..
wtedy do zliczenia krajow wystarczy ci zliczyc rec w jednej tabeli.....


hmmm choc na dobra sprawe, dlaczego po dolozeniu limitu az tak zwiekszyl sie czas przetwazania - nie wiem, sprawdz obciazenie serwera, (SHOW PROCESSLIST)

Ten post edytował alegorn 8.07.2009, 08:57:47
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
mysle ze to nie kwestia zapytania, ale juz wydajnosci bazy (mysql? ) przy takiej ilosci warto by bylo pomyslec o postgres ?

Z tego, co czytałem, to w kwestii wydajności właśnie przoduje MySQL. tongue.gif

Zdałaby się struktura tabel.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
alegorn
post
Post #8





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


Cytat(erix @ 8.07.2009, 12:53:59 ) *
Z tego, co czytałem, to w kwestii wydajności właśnie przoduje MySQL. tongue.gif


mysle ze to tak naprawde kwestia konfiguracji, ale mimo wszystko chyba warto by bylo odswiezyc wiedze biggrin.gif

postgres vs mysql 1
postgres vs mysql 2

wyniki nie sa jednoznaczne w wszystkich zapytaniach - ale tendencja jest chyba odwrotna niz piszesz...

Cytat(erix @ 8.07.2009, 12:53:59 ) *
Zdałaby się struktura tabel.


tutaj zgadzam sie calkowicie :]

Ten post edytował alegorn 8.07.2009, 12:55:53
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
mysle ze to tak naprawde kwestia konfiguracji, ale mimo wszystko chyba warto by bylo odswiezyc wiedze

A to mnie zaskoczyłeś. [;


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 11:17