![]() |
![]() |
![]() ![]()
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? |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 22:18 |