![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Hejka, mam taką zagwostkę:
Jest sobie zapytanie:
No i ładnie mi bierze index FK_TOPIC. Explain: Cytat idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra Wziął mi pod uwagę dwa rekordy.1 SIMPLE f_post ref FK_TOPIC FK_TOPIC 4 const 2 Using where; Using filesort Daję teraz to w podzapytanie:
I już mi nie uwzględnia FK_TOPIC jako klucza Cytat idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra 1 PRIMARY <derived2>ALL(NULL)(NULL)(NULL)(NULL)2Using where 2 DERIVED f_post ALL FK_TOPIC FK_TOPIC 4 118 Using filesort Bierze pod uwagę wszystkie rekordy (118) O co chodzi?Mam chwilowe zaćmienie związane z poszukiwaniem samochodu (IMG:style_emoticons/default/smile.gif) ps: wystarczy ze wywalę ORDER BY ID asc i już gra jak ta lala, szuka po dwóch rekordach. Czemu normalnie dziala niezależnie od order by, a w podzapytaniu trzeba wywalic order by by poszło normalnie |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@cojak to że ty sensu nie widzisz nie znaczy że go nie ma (IMG:style_emoticons/default/winksmiley.jpg)
Tutaj jak najbardziej jest sens. A danie tego order by na koncu da zupelnie inny wynik niż oczekiwany. O to całe zapytanie:
EXPLAIN EXTENDED : Kod id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY <derived2> ALL null null null null 2 100.00 Using where 2 DERIVED f_post ALL FK_TOPIC FK_TOPIC 4 118 1.69 Using filesort a o to struktura tabeli (wywalilem niepotrzebne pola):
edit: rozwiązaniem było założenie indexu na dwa pola jednoczesnie: na to po którym szukamy i na to po którym sortujemy
Dałem CDATE gdyż zmieniłem sortowanie na date a nie ID
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 00:02 |