Article View: pl.comp.lang.php
Article #231520Re: zawijanie logów
From: Rafal Podsiadly
Date: Sat, 21 Jan 2017 07:30
Date: Sat, 21 Jan 2017 07:30
30 lines
3087 bytes
3087 bytes
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.
Technical Details
Message-ID:
<8e09f7fd-d703-41cd-ad76-e3f9088dcb6a@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!i7no272194qta.1!news-out.google.com!78ni17795itm.0!nntp.google.com!r185no1091494ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<o5qse2$jes$1@node2.news.atman.pl> <o5raq9$42h$1@usenet.news.interia.pl> <o5td6b$vp0$2@node1.news.atman.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.176.91.134 with SMTP id y6mr4516621uae.10.1484983806358; Fri, 20 Jan 2017 23:30:06 -0800 (PST) X-Received: by 10.157.27.162 with SMTP id z31mr1858124otd.7.1484983806206; Fri, 20 Jan 2017 23:30:06 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!i7no272194qta.1!news-out.google.com!78ni17795itm.0!nntp.google.com!r185no1091494ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.php Date: Fri, 20 Jan 2017 23:30:05 -0800 (PST) In-Reply-To: <o5td6b$vp0$2@node1.news.atman.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=109.95.25.84; posting-account=reqlzgoAAACKWK1i9kGr8VyQtzu_4AF6 NNTP-Posting-Host: 109.95.25.84 References: <o5qse2$jes$1@node2.news.atman.pl> <o5raq9$42h$1@usenet.news.interia.pl> <o5td6b$vp0$2@node1.news.atman.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <8e09f7fd-d703-41cd-ad76-e3f9088dcb6a@googlegroups.com> Subject: Re: zawijanie logów From: Rafal Podsiadly <spinacz24@gmail.com> Injection-Date: Sat, 21 Jan 2017 07:30:06 +0000 X-Received-Bytes: 3249 X-Received-Body-CRC: 494554450 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit