To zapytanie wykonuje się w czasie mniejszym niż sekunda i zwraca 116 idków
SELECT c.id_kategorii FROM produkt c GROUP BY c.id_kategorii HAVING COUNT(c.id_kategorii)< 20;
Tego zapytania nie udało się wykonać, po 10 minutach przerwałem operację
SELECT * FROM kategoria k WHERE k.id IN (SELECT c.id_kategorii FROM produkt c GROUP BY c.id_kategorii HAVING COUNT(c.id_kategorii)< 20);
To zapytanie jest takie samo jak wyżej, tylko zamiast pod zapytania z palaca są wpisane id których jest w sumie 116, i wykona się w czasie krótszym niż sekunda....
SELECT * FROM kategoria k WHERE k.id IN (z palaca wpisane 116 idków);
Moje pytanie brzmi dlaczego jest taka duża różnica w czasie wykonania tego drugie zapytania skoro na moją logikę powinno ono trwać czas podzapytania + czas głównego zapytania. Co nie powinno trwać dłużej niż sekundę, a jednak trwa nieokreśloną ilość czasu.....
Dlaczego?