Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #15308

Re: zawijanie logów

Newsgroups pl.comp.lang.php
Date 2017-01-20 23:30 -0800
References <o5qse2$jes$1@node2.news.atman.pl> <o5raq9$42h$1@usenet.news.interia.pl> <o5td6b$vp0$2@node1.news.atman.pl>
Message-ID <8e09f7fd-d703-41cd-ad76-e3f9088dcb6a@googlegroups.com> (permalink)
Subject Re: zawijanie logów
From Rafal Podsiadly <spinacz24@gmail.com>

Show all headers | View raw


Trochę teorii.
1. Zbierając logi w jednej tabeli dochodzisz do pewnego ograniczenia.
(Jedna tabela jest jednym plikiem w systemie bazodanowym).
Z czasem pojawia się problem miejsca i szybkość z jaką otwiera system bazodanywy pliki. Pytanie do ilu rekordów maksymalnie jesteś w stanie sobie pozwolić. 
100 rekordów to znacznie za mało by mieć dobrą analizę błędów logów. Możesz taką ilość osiągnąć w kilka sekund.

PS: Dopiero fragmentacja tabeli powoduje fizyczne usunięcie z niej miejsca.

Wyjściem z rozwiązania jest budowanie Tabel które przechowują archiwum w okresach miesięcznych. arch_xxxx_xx 
usuwanie danych ograniczało by się do usunięciu tabeli.

Rozpiszmy to na zbiory danych
1. jedna tabela -> dane_insert(id, data, dane) 
- odpalamy crone który cyklicznie uruchamiamy 1 dziennie. Sprawdza ilość rekordów 
usuń wszystko z warunkiem id < (count(archiwum) - 100) - (max_id)

Trochę kombinowania... PS: dellete wykonuje następujące operacje.

Odszukuje rekord o danym id następnie sprawdza czy rekord jest używany, zablokowany i dokonuje próbę zmiany statusu rekordu na usunięty aby można było w przyszłości przy fragmentacji zwolnić miejsce.

Efekt dość spora ilość operacji wykonywana przez silnik bazy danych.

2. Rozwiązanie (tabela archiwum odpowiadająca archiwum) 
Odczyt danych przez widok, zapisywanie danych przez procedurę.
Usuwanie danych przez trunce -> delette table.

Na przykład zamiast przechowywać dane rekordy w ilości 100. Przechowujemy x miesięcy.

Efekt usuwanie szybsze. Mniejsze tabele zapewniają lepszą 
elastyczność systemu. PS: jeśli danych masz mało to można rozdzielić to na lata.

Back to pl.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

zawijanie logów niepełnosprawny intelektualnie 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-01-19 18:18 +0100
  Re: zawijanie logów niepełnosprawny intelektualnie 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-01-19 18:20 +0100
  Re: zawijanie logów "Stokrotka" <ortografia.nowa@gazeta.pl> - 2017-01-19 18:37 +0100
    Re: zawijanie logów niepełnosprawny intelektualnie 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-01-19 19:02 +0100
    Re: zawijanie logów "Darek" <darekpn2@wp.pl> - 2017-01-19 20:15 +0100
  Re: zawijanie logów Adam <a.g@poczta.onet.pl> - 2017-01-19 22:24 +0100
    Re: zawijanie logów niepełnosprawny intelektualnie 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-01-20 17:17 +0100
      Re: zawijanie logów Rafal Podsiadly <spinacz24@gmail.com> - 2017-01-20 23:30 -0800
        Re: zawijanie logów Borys Pogoreło <borys@pl.edu.leszno> - 2017-01-21 11:29 +0100
          Re: zawijanie logów Rafal Podsiadly <spinacz24@gmail.com> - 2017-01-21 04:13 -0800
            Re: zawijanie logów w systemie siła 'PO/EU <NOSPAMtestowanije@go2.pl> - 2017-01-21 16:05 +0100
            Re: zawijanie logów Roman Tyczka <noemail@because.no> - 2017-01-21 23:47 +0100
              Re: zawijanie logów Borys Pogoreło <borys@pl.edu.leszno> - 2017-01-22 21:34 +0100
            Re: zawijanie logów Borys Pogoreło <borys@pl.edu.leszno> - 2017-01-22 21:34 +0100
      Re: zawijanie logów "Darek" <darekpn2@wp.pl> - 2017-01-21 19:17 +0100
        Re: zawijanie logów w systemie siła 'PO/EU <NOSPAMtestowanije@go2.pl> - 2017-01-21 19:21 +0100
  Re: zawijanie logów Rafal Podsiadly <spinacz24@gmail.com> - 2017-01-22 09:27 -0800

csiph-web