Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][teoretycznie]Silnik dla systemu statystycznego
Mackos
post 7.12.2014, 11:57:37
Post #1





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Cześć,
Pracuję nad nowym silnikiem dla swojej aplikacji reklamowej.
I generalnie mam problem czysto teoretyczny.

Otóż cały czas czytam o różnych silnikach bazodanowych i nie idzie się zdecydować, chodzi mi dokładnie o silnik do którego zapisywane są dane o wyświetleniu reklamy. Przewiduję dzienny ruch / zapis rzędu 1,5mln rekordów na spokojnie.
I jak dotąd myślałem, że innoDB ze względu na blokowanie tabeli na poziomie rekordu zdaje egzamin, jednak teraz przeczytałem kilka innych artykułów, które sugerują do tego typu zadań wykorzystywanie MyISAM. Bo w rzeczy samej tabela w bazie będzie się opierała niemal wyłącznie o inserty, w dodatku o "insert delayed", tylko pytanie czy MyISAM obsłuży lepiej te kilkaset insertów na minutę lub nawet sekundę?
Oczywiście dla ścisłości, co 4 godziny tworzona jest nowa tabela gdzie są zapisywane informacje, tym sposobem rekordy z całego dnia są przeliczane do finałowej tabeli w trybie podliczania ostatniej wolnej tabeli i zapisywania danych do tabeli z raportami, (i tu pytanie nr 2) jakiego silnika użyć dla tabeli z raportami?
Jak coś to Archive nie zdaje dla mnie egzaminu, MEMORY używam ale w innym celu. Za mało wiem o TokuDB ale na tyle na ile mi wiadomo to jest to baza noSQL co raczej wyklucza ją z pakietu zainteresowań ze względu na blokowanie całej bazy.

Co poradzicie?


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post 9.12.2014, 21:07:14
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat
Tak, cały czas praktycznie pracuję w jednej branży (reklamy), i cały czas się uczę i czytam o nowych zastosowaniach co wzbudza moje niemal identyczne wątpliwości.
Finalnie w tych aplikacjach baza danych (zawsze) niedomaga :/ .
Na domiar złego ta aplikacja nad którą pracuję, nie dość że ma być związana właśnie z taką ilością rekordów, to będzie rozliczana w modelu SaaS. Więc te liczby są liczone per klient.
Fajnie byłoby maksymalnie ograniczyć `pożary` systemu przed startem, bo itak wiem, że po starcie to będzie ciągły update.

Tak to już jest z aplikacjami które generują duży ruch, baza to jest zawsze największy problem, dlatego stawia się zawsze coś szybszego przed bazą. Baza jest fajna do generowania jakichś raportów, jakichś statysty, a "bieżące" dane, które aktualnie są przetwarzane, warto trzymać właśnie w takich tworach jak redis czy memcached. Redis jest o tyle fajny, że ma ten zapis w tle na dysku, dzięki czemu można się zabezpieczyć przed ewentualnymi awariami, czego w przypadku innych podobnych narzędzi nie osiągniesz (łatwo).

Sam się ostatnio wdrążam w redisa i node.js; bardzo mi się to podoba, zwłaszcza node, który początkowo wydawał mi się użyteczny tylko do websoketów, teraz robiłbym na tym wiele rzeczy, kiedy jeszcze nie tak dawno się przed tym wzbraniałem wink.gif

Cytat
Okej, to zdecydowałem robić zapis danych w takiej formie:
Aplikacja -> Redis (jeśli włączony) -> Baza Danych, teraz ponowie pytanie z jakich silników korzystać dla tabeli z raportami (czyli policzonymi spersonalizowanymi statystykami)?


To już zależy jak twoje rekordy będą wyglądać, tzn, jakiego to będą dokładnie typu dane. IMO innodb powinno być OK. I tak w większej mierze zależy to jak taka tabelka/baza zostanie zaprojektowana, bo nawet najlepszy, najwydajniejszy silnik składowania danych nie podoła, kiedy będzie to źle zaprojektowana baza.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 19:56