![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 31.01.2003 Skąd: piękne, czyste, pachnące Katowice Ostrzeżenie: (0%) ![]() ![]() |
to wycinek danych z mojej bazy:
widzicie tutaj informacje o pytaniach przesyłanych przez użytkowników mojej stronki. Ta tabela prezentuje odpowiedzi na te pytania, np. w pytaniu 306 kontakt z użytkownikiem pojawił się 8 razy (8 rekordów w bazie). potrzebuje dowiedzieć się, jaki był czas odpowiedzi po wysłaniu pytania przez użytkownika. W pyt. 306 kontakt użytkonika rozpoczął się 12.07 o godz. 11:06:26. O 11:24:11 dostał odpowiedz. Potrzebuję obliczyć różnicę czasu między tymi rekordami. Czyli pozostałe 6 rekordów dla tego pytania mnie nie interesuje (ważna jest pierwsza odpowiedz na pytanie). Problem polega na tym, że takich pytań mam w bazie kilkaset i chcę to policzyć dla wszystkich. Siedzę nad tym i przyznam, że nie mam pomysłu. Pewnie da się to jakoś zrobić przez podzapytania, ale w tym jestem słaby. Może ktoś ma pomysł? z góry dzieki! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie da sie raczej zrobić tego jednym zapytaniem - a nawet jeśli to byłoby to niepotrzebne cudowanie. Nalezy pamietac, ze czasami 100 zapytan jest szybciej obsluzonych niz 1 skomplikowane. No nie do konca tak jest, zalezy jak do tego podejdziesz i ile czasu poswiecisz na jego dostrojenie i wtedy sie przekonasz co jest lepsze. Odnosnie tych petli to sa np funkcje, procedury ale to sie tyczy innych baz danych. Tak czy inaczej mozna na wiele sposobow kombinowac i roznie z tym bywa. Mam taka mala uwage do tych Twoich zapytan. Lepiej uzyc max i min bo jest wydajniejsze, wczoraj byl o tym post i kazdy byl za tym. Prosty przyklad 1. Dla pola bez indeksu metoda z order by - sortujesz (btree) - operacja limit metoda z max - wybierasz najwieksza wartosc (chyba szukanie binarne) Porownujac algorytmy 2 sposob jest szybszy. Wariant 2 z indexem na pole data metoda z order by - wartosci posortowane - operacja limit metoda max - odczytanie ostatniej wartosci Tez 2 przyklad jest szybszy. Jesli na dodatek zrobisz z tych zapytan 2 podzapytanie i dasz je jako zbior w FROM to powinienes otrzymac wynik szybciej niz pojedyncze 2 zapytania. Wydaje mi sie ze nie walnolem nigdzie gafy jak by co to poprawcie mnie. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:53 |