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
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 885
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Być może sprawa nie dot. zapytania,tylko samej bazy danej, może trzeba zmienić mechanizm obsługi bazy gdzie jest wiele zapytać.


I warto też ograniczyć pierwsze pole SELECT o kolumny które będziemy korzystać.

Ten post edytował Tomplus 15.05.2011, 14:13:23
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: 27.12.2025 - 22:22