Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie najnowyszch wyników
matisq
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 2.06.2008

Ostrzeżenie: (0%)
-----


Mam tabele z takimi kolumnami:

time (timestamp unixowy (123456789))
host_name (nazwa hosta)
srv_dsc (opis servisu)
srv_output (output servisu)

Mam kilka hostów i kilka serwisów. każdy wpis do bazy danych jest unikalny (timestamb, host_name, srv_dsc).
Próbuję wymyślić takie zapytanie żeby dla danego hosta pobrać tylko najnowsze wpisy dotyczące każdego z serwisów, czyli jeśli mam 5 serwisów to jako rezultat dostaję 5 lini itp.

Próbowałem tego ale jakoś wątpie że to zadziała.
  1. SELECT *, MAX(time)
  2. FROM DATA WHERE host_name = "jakis-host"
  3. GROUP BY srv_dsc


Jakieś sugestie?
Dzięki za przeczytanie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
matisq
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 2.06.2008

Ostrzeżenie: (0%)
-----


Chciało mi się i ciagle próbuje ale dalej nie działa!

Takie zapytanie nie zwraca mi nic sensownego. Po co mi srv_dsc skoro nie wiem kiedy to miało miejsce?
  1. SELECT DISTINCT(srv_dsc)
  2. FROM `data` ORDER BY time DESC


A zapytanie
  1. SELECT * FROM service_data WHERE host_name='host'
  2. GROUP BY service_output
  3. ORDER BY timet DESC


zwraca mi to co chcę ale nie ostatnie wystąpienie tylko jakieś inne. Jak dodać warunek na otrzymanie ostatniego wpisu z bazy ?

Już działa. Rozbiłem to na kilka tabel i zrobiłem kombinację zapytania w MySQL i PHP.

Ale mam kolejny problem. Otóż wywołuję takie oto zapytanie.

  1. SELECT * FROM service_data WHERE host_id = "33" AND service_id = "1" ORDER BY id DESC LIMIT 1 ;

I czas odpowiedzi to ponad 20 sekund.
Baza ma 1,2 GB i ponad 500000 rekordów.
Indeksowana jest po 'id' który jest autoinkrementowany.

Czy istnieje jakiś sposób na zmniejszenie tego czasu? Takich zapytań chcę zrobić koło 300!

Nie muszę chyba dodawać że:
Handler_read_rnd=16 k
Handler_read_rnd_next=39 M

To już chyba norma.
Jakieś pomysły?
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: 5.10.2025 - 08:53