![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
Witam
Struktura tabeli:
Przykładowe dane:
Czy istnieje optymalny sposób aby na poziomie bazy danych wyciągnąć informacje o okresach w których wystąpił błąd php. Czyli coś w rodzaju: Od 2010-06-24 22:44:52 do 2010-06-24 22:46:53, od 22:50:53 do 22:50:53 wystąpił błąd. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 21.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ola boga, co za 'crazy idea'.
Po to są pliki logów. Błędy loguje server do pliku, pliki logów po jednym na dzień, a potem 'grep'-ujesz pliki w poszukiwaniu tego co ci potrzeba. Taki sposób jest najszybszy/wydajniejszy. (może mało elastyczny, ale do tego właśnie stworzony) w żaden sposób twój pomysł nie jest wydajny. Ale jeżeli już to: 1. Make your database as small as possible to better fit in memory - czyli staraj się o jak największe "upakowanie" danych, żeby zoptymalizować proces przeszukiwania tabeli. Czy na polu pageid potrzebujesz, aż biginta, czy wystarczy ci zakres od 0-128? Zmniejsz o ile się da. 2. Ustaw 'ROW_FORMAT' tabeli na FIXED - zobaczysz sobie w phpmyadminie na zakładce operacje. Odchudzi to strukturę pliku danych. 3. Jeżeli będziesz przeszukiwał to korzystaj z całego klucza (SELECT * FROM logi WHERE pageid= x AND data between '2010-01-01' and '2005-01-31') 4. Włącz pakowanie kluczy. Też w opcjach tabeli. Zmniejszy to klucze i jeżeli się nie mylę to przy dużych ilościach powinno ładniej pasować w pamięć serva. Przyspieszy wyszukiwanie. Osobiście ja bym zamienił datetime na intiger i ładował tam unix time stampy (ilość sec od 1970). Wtedy łatwiej jest robić działania na tym polu (dodawanie i odejmowanie dowolnej ilości sec) SELECT * FROM logi WHERE pageid= x AND data between 1277804192 and 1277804192+3600; -------------------- ==============================================
Bo ja jestem Wróbelek Htmlek ============================================== |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
Nie ma takiej możliwości niestety gdyż dziennie mogło by przybywać nawet z 1k plików. Ilość rekordów w tabeli będzie bardzo duża (100k dodawanych codziennie). Rozwiązałem to w inny sposób.
Ten post edytował wlamywacz 1.07.2010, 16:28:09 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 21.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie jeden plik na jeden błąd tylko jeden plik na dzień.
Więc jeden plik dziennie ze wszystkimi błędami. -------------------- ==============================================
Bo ja jestem Wróbelek Htmlek ============================================== |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:51 |