Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zaawansowanego zapytania, zabija serwer - strona ładuje się 10 sekund
Natalka
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 6
Dołączył: 28.10.2009
Skąd: że znowu...

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


Mam pewien problem z zapytaniem, które strasznie zamula mi stronę.


Na stronie chcę pobrać

Wszystkie obrazki z bazy danych które zostały polubione powyżej 3 razy.


Moje zapytanie wygląda tak:
Kod
SELECT * FROM obrazek WHERE id in (SELECT id_obrazek FROM loveit HAVING count(loveit.id) > 3 ) ORDER BY id desc LIMIT $ilosc



Tabela obrazek - zawiera listę wszystkich obrazków

pola w bazie
id - nr id obrazka


Tabela loveit - zawiera listę wszystkich osób które lubią obrazek

pola w bazie
id_obrazek - nr id obrazka


Wiem że problem jest dokładnie tutaj
Kod
WHERE id in (SELECT id_obrazek FROM loveit HAVING count(loveit.id) > 3 )


Bo gdy usunę tę cześć działa bez problemu.

Czy jest ktoś w stanie mi pomóc w jaki sposób mogę to zoptymalizować?

Ten post edytował Natalka 15.05.2011, 14:08:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Jest sporo wartościowych tekstów w internecie na temat Indeksów, w skrócie mogę powiedzieć że mówią one jak porządkować dane w tabeli co przyśpiesza ich pobieranie.
Ogólnie przyjmuję się taką zasadę że indeksy zakłada się na pola po których porządkujesz/grupujesz tabelę i na klucze obce( przy silniku InnoDB jest to wymóg).

Btw. Zainteresuj się silnikiem InnoDB i relacjami.

Cytat
Muszę ustawić nazwę klucza (czy ona ma jakiś związek z zapytaniem?)


Nie jest ona ważna.

Cytat
Czy indeksy przyśpieszają pobieranie danych?


Gdybyś z większego serwisu/forum wywaliła indeksy sądzę że by nawet nie ruszył (IMG:style_emoticons/default/biggrin.gif) - czyli tak, przyśpieszają i to czasami bardzo.

P.S. To nie jest zaawansowane zapytanie (IMG:style_emoticons/default/wink.gif)

Ten post edytował melkorm 15.05.2011, 14:41:32
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: 7.10.2025 - 02:54