Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> index podzapytania
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




Hejka, mam taką zagwostkę:
Jest sobie zapytanie:
  1. SELECT @nr:=@nr+1,IF(ID=@id, @idnr := @nr,@idnr=@idnr),ID FROM f_post WHERE FK_TOPIC=2 ORDER BY f_post.ID ASC

No i ładnie mi bierze index FK_TOPIC.
Explain:
Cytat
idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1 SIMPLE f_post ref FK_TOPIC FK_TOPIC 4 const 2 Using where; Using filesort
Wziął mi pod uwagę dwa rekordy.

Daję teraz to w podzapytanie:
  1. SELECT @idnr AS nr FROM
  2. (SELECT @nr:=@nr+1,IF(ID=@id, @idnr := @nr,@idnr=@idnr),ID FROM f_post WHERE FK_TOPIC=2 ORDER BY f_post.ID ASC ) podsel WHERE podsel.ID = @id;

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Na liście wyszukiwania może zaistnieć potrzeba wyświetlenia którym postem w temacie jest znaleziony rekord (może ale nie musi)
Ale po co?
Weźmy przykład z tego forum:
Na liscie postów (czy na liście wyszukiwania postów) mamy coś takiego jak link do posta:
.....&view=findpost&p=776621
W linku nie ma numeru strony. Na tym etapie nie pobieramy pozycji posta. Wchodząc na link, forum przelicza stronę na której znajduje się post (robi to zapewne na podstawie pozycji posta) i przekierowuje jeszcze raz na ten sam temat ale z uwzględnieniem strony.
No i tu pytanie czy pozycja jest juz zapisana w bazie i poprostu brana, czy też może jest wyliczana gdy ktoś kliknie na ten link.
Wysłałem to pytanie do naszego admina to może się dowiemy jak to jest tu na forum zrobione (IMG:style_emoticons/default/smile.gif)

edit: no i mam odpowiedź od kwiateusza:
w tabeli postów tu na forum nie ma takiego pola jak pozycja. Pozycja jest wyliczana na żądanie. No i jakoś to duże forum sobie z tym radzi.
Tak naprawdę trudno by sobie nie radziło. Weźmy np. to moje zapytanie:
już na dzien dobry ograniczam wyszukiwania tylko do postów należącyc do danego tematu (FK_TOPIC). Przy poprawnych indeksach takie zapytania są naprawdę szybkie.

Dzięki wookieb jednak za dyskusję. Nie powiem, przydała się by spojrzeć na to wszystko pod trochę innym kontem.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.06.2026 - 11:13