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: 69 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%)
|
Jak na pytanie , w ktorym :
- laczysz 2 tabele - grupujesz dane - agregujesz dane - masz warunki na dane i ktore przerabia milion rekordow 4 sekundy to nie jest duzo. Nie popadajmy w skrajnosci - baza nie wykonuje prostego selecta, w zwiazku z czym nie mozna oczekiwac, ze przy takiej ilosci danych wykona zapytanie w ok. sekunde. |
|
|
|
Homiczek Optymalizacja wyszukiwania z INNER JOIN 21.08.2007, 09:17:33
osiris 4 sekundy to jednak troche za duzo jak na takie za... 21.08.2007, 10:32:58
Homiczek CytatDlaczego w klauzuli WHERE wt.opcja_ID = ... 21.08.2007, 11:37:35 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 18:33 |