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 |
|
|
|
![]() |
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 |
|
|
|
Natalka Optymalizacja zaawansowanego zapytania 15.05.2011, 14:03:01
melkorm Spróbuj tak:
[SQL] pobierz, plaintext SELECT * FRO... 15.05.2011, 14:10:19
Tomplus Być może sprawa nie dot. zapytania,tylko samej baz... 15.05.2011, 14:12:06
Natalka Już testuję Twoje zapytanie
/** sprawdzone **/
... 15.05.2011, 14:13:26
melkorm Załóż indeksy na : user_id ( w obu tabelkach ) , i... 15.05.2011, 14:23:49 
Natalka Cytat(melkorm @ 15.05.2011, 15:23:49 ... 15.05.2011, 14:37:43 
Natalka Cytat(melkorm @ 15.05.2011, 15:37:54 ... 15.05.2011, 14:44:20
melkorm CytatNie dla wszystkich łączenie kilku tabel to d... 15.05.2011, 14:50:20
fifi209 Dla autora tematu pozwolę sobie zalinkować do vide... 15.05.2011, 14:53:21 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 10:07 |