![]() |
![]() |
![]()
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.
Jakieś sugestie? Dzięki za przeczytanie |
|
|
![]() |
![]()
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?
A zapytanie
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.
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? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:53 |