Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][teoretycznie]Silnik dla systemu statystycznego
Mackos
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
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
Hmm, tylko pytanie czy koszty użycia Redisa nie są porównywalne z kosztami dla mysql'a. Bo jak by nie patrzeć jedno i drugie opiera się o zapis do plików tymczasowych lub stałych, i wykorzystuje pamięć.

Nie, redis nie tworzy indeksów, redis niczego nie indeksuje. Nawet jakbyś przeniósł mysql na ramdisc, to i tak redis miałby lepszy czas zapisu i odczytu, dlatego że on nie indeksuje niczego. Tutaj masz jakiś benchmark: https://redis-docs.readthedocs.org/en/latest/Benchmarks.html zapisz w mysql 100000 rekordów w niecałą sekundę.

Cytat
Więc tu kwestia się rozbija o to czy opłaca mi się rozbijać aplikację dla dodatkowego modułu, który może utrudnić rozwój w przyszłości a jego oszczędności będą znikome? Bo jednak chcę się trzymać zasady keep-it-simple-stupid!

Nie ma prostych aplikacji które przetwarzają 1.5 miliona rekordów dziennie.

Cytat
I pytanie numer 2: Redis wydajnościowo jest taki sam jak memcache?

Wydajnościowo są porównywalne, różnice są nieznaczne. Natomiast możliwościami, redis jest wówczas zupełnie inną "półką". W memcached możesz trzymać tylko zserializowane dane do 1mb, w redisie? Wszystko, od blobów, po obrazki, domyślnie do 500mb. Jest też w redisie właśnie zapis do pliku w tle, który nie wpływa na zapis/odczyt. Jest też możliwość tworzenia swoich własnych skryptów, które są wykonywane w redisie (lua).

Facebook, czy google nie przetwarzają danych bezpośrednio w bazach danych. Taki facebook używa mysqla i bardzo zbliżonej ilości serwerów z memcached, a jakieś akcje użytkowników na facebooku w 90 paru procentach nie dotykają bezpośrednio bazy danych. W bardzo podobnej sprawie założyłeś już kiedyś temat, w którym również się bardzo podobnie wypowiedziałem.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 22:18