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: 59 Pomógł: 6 Dołączył: 28.10.2009 Skąd: że znowu... Ostrzeżenie: (0%)
|
Już testuję Twoje zapytanie
/** sprawdzone **/ Działa dużo szbciej, już nie zabija tak strony Czy można jeszcze coś ulepszyć w mojej bazie danych ? A czy mógłby ktoś jeszcze podpowiedzieć co takiego źle robiłam? Czemu aż tak bardzo moje zapytanie zamulało stronę? A Baza wygląda tak: Kod CREATE TABLE IF NOT EXISTS `obrazek` ( `id` int(9) NOT NULL AUTO_INCREMENT, `tytul` text NOT NULL, `opis` text NOT NULL, `skad` text NOT NULL, `obrazek` text NOT NULL, `obrazekmini` text NOT NULL, `user_id` int(9) NOT NULL, `raport` int(1) DEFAULT '0', `dodanydata` varchar(20) NOT NULL, `plikURL` text NOT NULL, `typ` enum('obrazek','video') NOT NULL DEFAULT 'obrazek', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=2604; Kod CREATE TABLE IF NOT EXISTS `loveit` (
`id` int(9) NOT NULL AUTO_INCREMENT, `id_obrazek` int(9) NOT NULL, `id_user` int(9) NOT NULL, `datadodania` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=4450; Ten post edytował Natalka 15.05.2011, 14:23:08 |
|
|
|
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
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
melkorm Jest sporo wartościowych tekstów w internecie na t... 15.05.2011, 14:37:54 
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 - 09:22 |