🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
17 messages
17 total messages Started by niepełnosprawny intelektualnie '... Thu, 19 Jan 2017 17:18
zawijanie logów
#231513
Author: niepełnosprawny intelektualnie '...
Date: Thu, 19 Jan 2017 17:18
22 lines
1557 bytes
jeśli dla uproszczenia przyjąć, że do bazy logujemy wszystkie wejścia na 
stronę to jak zrobić najlepiej zawijanie?

czyli jak kasować najstarsze wpisy zostawiając N ostatnich?

nie żebym z gębą na pączki...

mój pomysł jest taki:

ilczę conutem ilość wpisów

sprawdzam czy kwalifikują się do kasowania

odczcytuję 100 najstarszych wpisów poprzez select z sortowniem po dacie

wyszukuję w nich największy ID

kasuję wszystkie wpisy i id<ID...

co Panowie na to? ogólnie to ja nawet nie jestem programistą, nie 
dopuścili mnie na politechnice warszawskiej, więc jakby Ktoś coś to z 
góry dzięki?
Re: zawijanie logów
#231514
Author: niepełnosprawny intelektualnie '...
Date: Thu, 19 Jan 2017 17:20
2 lines
1045 bytes
nie do końca ogarniam sortowanie,
czy sortowanie odbywa sie po sprawdzeniu warunku czy przed?
Re: zawijanie logów
#231515
Author: Stokrotka
Date: Thu, 19 Jan 2017 17:37
32 lines
1917 bytes
> jeśli dla uproszczenia przyjąć, że do bazy logujemy wszystkie wejścia na
> stronę to jak zrobić najlepiej zawijanie?
>
> czyli jak kasować najstarsze wpisy zostawiając N ostatnich?
>
> nie żebym z gębą na pączki...
>
> mój pomysł jest taki:
>
> ilczę conutem ilość wpisów
>
> sprawdzam czy kwalifikują się do kasowania
>
> odczcytuję 100 najstarszych wpisów poprzez select z sortowniem po dacie
>
> wyszukuję w nich największy ID
>
> kasuję wszystkie wpisy i id<ID...
>
> co Panowie na to? ogólnie to ja nawet nie jestem programistą, nie 
> dopuścili mnie na politechnice warszawskiej, więc jakby Ktoś coś to z góry 
> dzięki?

Co znaczy "czy kwalifikują się do kasowania"
I wydaje mi się, że poza ilością powinien być conajmniej drugi warunek na 
datę (ma być dość stara).

-- 
(tekst bez: ó, ch, rz i -ii)
Ortografia to NAWYK, często nielogiczny, ktury ludzie ociężali umysłowo,
nażucają bezmyślnie następnym pokoleniom. 
Re: zawijanie logów
#231516
Author: niepełnosprawny intelektualnie '...
Date: Thu, 19 Jan 2017 18:02
5 lines
1092 bytes
oj tam nie domyślasz się?

jeśli count zwróci 100 mln

to przy wpisie 100 mln + 100 kasuje...
Re: zawijanie logów
#231517
Author: Darek
Date: Thu, 19 Jan 2017 19:15
47 lines
2543 bytes

Użytkownik "Stokrotka"  napisał w wiadomości grup 
dyskusyjnych:o5qtgf$8ps$1@usenet.news.interia.pl...


> jeśli dla uproszczenia przyjąć, że do bazy logujemy wszystkie wejścia na
> stronę to jak zrobić najlepiej zawijanie?
>
> czyli jak kasować najstarsze wpisy zostawiając N ostatnich?
>
> nie żebym z gębą na pączki...
>
> mój pomysł jest taki:
>
> ilczę conutem ilość wpisów
>
> sprawdzam czy kwalifikują się do kasowania
>
> odczcytuję 100 najstarszych wpisów poprzez select z sortowniem po dacie
>
> wyszukuję w nich największy ID
>
> kasuję wszystkie wpisy i id<ID...
>
> co Panowie na to? ogólnie to ja nawet nie jestem programistą, nie 
> dopuścili mnie na politechnice warszawskiej, więc jakby Ktoś coś to z góry 
> dzięki?

Co znaczy "czy kwalifikują się do kasowania"
I wydaje mi się, że poza ilością powinien być conajmniej drugi warunek na
datę (ma być dość stara).

-- 
(tekst bez: ó, ch, rz i -ii)
Ortografia to NAWYK, często nielogiczny, ktury ludzie ociężali umysłowo,
nażucają bezmyślnie następnym pokoleniom.

Jak w piosence -
Spotkali się (...)
Miejscowa idiotka z tutejszym kretynem."
:) 


---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: zawijanie logów
#231518
Author: Adam
Date: Thu, 19 Jan 2017 21:24
29 lines
1547 bytes
W dniu 2017-01-19 o 18:18, niepełnosprawny intelektualnie 'POPIS/EU pisze:
> jeśli dla uproszczenia przyjąć, że do bazy logujemy wszystkie wejścia na
> stronę to jak zrobić najlepiej zawijanie?
>
> czyli jak kasować najstarsze wpisy zostawiając N ostatnich?
>
> nie żebym z gębą na pączki...
>
> mój pomysł jest taki:
>
> ilczę conutem ilość wpisów
>
> sprawdzam czy kwalifikują się do kasowania
>
> odczcytuję 100 najstarszych wpisów poprzez select z sortowniem po dacie
>
> wyszukuję w nich największy ID
>
> kasuję wszystkie wpisy i id<ID...
>

A co w przypadku, gdy cały log będzie miał 80 rekordów?



-- 
Pozdrawiam.

Adam
Re: zawijanie logów
#231519
Author: niepełnosprawny intelektualnie '...
Date: Fri, 20 Jan 2017 16:17
5 lines
1140 bytes
> A co w przypadku, gdy cały log będzie miał 80 rekordów?

no to wtedy ktoś dostaje grant i problemu nie ma...

NA TEMAT proszę!
Re: zawijanie logów
#231520
Author: Rafal Podsiadly
Date: Sat, 21 Jan 2017 07:30
30 lines
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.
Re: zawijanie logów
#231521
Author: Borys Pogoreło
Date: Sat, 21 Jan 2017 10:29
14 lines
1481 bytes
Dnia Fri, 20 Jan 2017 23:30:05 -0800 (PST), Rafal Podsiadly napisał(a):

> 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ć. 

W sensownej bazie z dobrze założonymi indeksami wielkość tabeli praktycznie
nie ma znaczenia przy odczycie. Niepotrzebnie to komplikujesz, bardziej
baza się spoci przy takim krojeniu na kawałki, niż przy dopisywaniu nowych
rekordów i wyszukiwaniu.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: zawijanie logów
#231522
Author: Rafal Podsiadly
Date: Sat, 21 Jan 2017 12:13
1 lines
1410 bytes
Wrzuć do mysql 1TB danych.
Re: zawijanie logów
#231523
Author: w systemie siła 'PO/EU
Date: Sat, 21 Jan 2017 15:05
6 lines
1328 bytes
po roku zbierania logów (w sumie praktycznie same przeglądarki)
mam tak

http://zsyp.eu/smieci/baza-index.JPG

nie wiem czy to normalne, czy index jest za duży?
Re: zawijanie logów
#231527
Author: Darek
Date: Sat, 21 Jan 2017 18:17
15 lines
1839 bytes
Witam tutejszego kretyna :) A gdzie miejscowa idiotka ?

Użytkownik "niepełnosprawny intelektualnie 'POPIS/EU"  napisał w wiadomości 
grup dyskusyjnych:o5td6b$vp0$2@node1.news.atman.pl...

> A co w przypadku, gdy cały log będzie miał 80 rekordów?

no to wtedy ktoś dostaje grant i problemu nie ma...

NA TEMAT proszę! 


---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: zawijanie logów
#231528
Author: w systemie siła 'PO/EU
Date: Sat, 21 Jan 2017 18:21
1 lines
1107 bytes
ooo, zdecydowany grantobiorca, cześć kurwo...
Re: zawijanie logów
#231524
Author: Roman Tyczka
Date: Sat, 21 Jan 2017 22:47
9 lines
1201 bytes
On Sat, 21 Jan 2017 04:13:56 -0800 (PST), Rafal Podsiadly wrote:

> Wrzuć do mysql 1TB danych.

Użyj postgressa, mysql to zabawka a nie "sensowna baza danych".

-- 
pozdrawiam
Roman Tyczka
Re: zawijanie logów
#231529
Author: Rafal Podsiadly
Date: Sun, 22 Jan 2017 17:27
4 lines
1572 bytes
Przy tak małych wynikach po co je usuwać po 100 wynikach.
A tak zapytam czy zrzucasz informacje o momencie zapisu rekordu NOW(), usunięcie wszystkich danych starszych niż rok było by lepsze.

A najlepsze Dump + gzip tabeli(by mieć archiwum a tak na wszelki wypadek) -> i zresetowanie jej (truncate). Od razu masz fragmentacje tabeli.
Re: zawijanie logów
#231526
Author: Borys Pogoreło
Date: Sun, 22 Jan 2017 20:34
13 lines
1519 bytes
Dnia Sat, 21 Jan 2017 04:13:56 -0800 (PST), Rafal Podsiadly napisał(a):

> Wrzuć do mysql 1TB danych.

I w czym widzisz problem w tym przypadku, bo nie rozumiem? Logi to głównie
dopisywanie nowych rekordów, z rzadkim wyszukaniem po dacie, czasem po
innym kryterium. Jeśli będziesz na tym 1TB robić jakieś większe operacje,
to bez odpowiedniego zaprojektowania tabeli wszystko siądzie, ale to
dotyczy praktycznie każdej bazy.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: zawijanie logów
#231525
Author: Borys Pogoreło
Date: Sun, 22 Jan 2017 20:34
15 lines
1541 bytes
Dnia Sat, 21 Jan 2017 23:47:09 +0100, Roman Tyczka napisał(a):

>> Wrzuć do mysql 1TB danych.
> 
> Użyj postgressa, mysql to zabawka a nie "sensowna baza danych".

Zależy do czego, replikację i skalowanie mają rozwiązane bardzo dobrze.
Przykładowo UBER się zwinął z Postgresa, bo baza u nich nie dała rady od
pewnej skali: https://eng.uber.com/mysql-migration/

Facebook też ma sporo rozwiązań oparte o MySQL.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads