Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.04.2003 Ostrzeżenie: (0%)
|
Mam następujący problem.
Łącze 2 tabele: 1. zawiera główne dane itp i ma ID 2. zawiera powiązania pierwszej tabeli z trzecią tabelą: pola : ID, opcja_ID Trzecia tabela zawiera nazwy opcji, ale do wyszukiwania potrzebuje znajdować takie które mają te opcje zapisane i nie potrzebuje ich nazw wtedy wyświetlać. I problem polega na tym że potrzebuje wyszukiwać rekordy z tabeli 1 spełniające pewne tam kryteria, a dodatkowo spełniające opcje z powiązanej tabeli mam zapytanko :
to przykładowe zapytanie wyciąga wiersze z 1 tabeli które mają co najmniej zaznaczone opcje 50,34 i 35. Wiem że to zapytanie jest pokręcone ale do takiego doszłem. zapytanko działa, tylko dla 30000 rekordów w 1 tabeli i z miliona w drugiej to wykonuje sie 4 sekundy, a to trooche za dużo. Jakby ktoś miał jakiś pomysł jak to wyszukiwanie przyśpieszyć to byłbym bardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) z góry thx |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.04.2003 Ostrzeżenie: (0%)
|
Cytat Dlaczego w klauzuli WHERE wt.opcja_ID = '50' OR wt.opcja_ID = '35' OR wt.opcja_ID = '34' zapisujesz wartosci pol opcja_id jako tekst a nie jako liczby? Mysql musi potem wykonac niepotrzebna kowersje. no dzienki. Wcześniej nie zwracałem na to uwagi, a jakieś ułamki ms można urwać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a pobieram pare danych z pierwszej tabeli oprócz id. Przeglądam i sprawdzam optymalizacje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Próbuje różnych dróg poprzez join i select - podselect; ewentualnie wchodzi w grę zapisywanie opcji po przecinku w głównej tabeli w jednej kolumnie. Bo nie chciałbym aby w miare wzrostu rekordów w tabelach wszystko zaczęło strasznie zwalniać :/ |
|
|
|
Homiczek Optymalizacja wyszukiwania z INNER JOIN 21.08.2007, 09:17:33
mwojcik Jak na pytanie , w ktorym :
- laczysz 2 tabele
-... 21.08.2007, 10:04:12
osiris 4 sekundy to jednak troche za duzo jak na takie za... 21.08.2007, 10:32:58 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 19:56 |