Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ARCHIVE czy InnoDB co wydajniejsze?
Mackos
post
Post #1





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

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


Cześć,
Mam problem całkiem merytoryczny, i trochę się nad nim głowie.
Otóż mam serwer z bazą danych (jest tylko pod baze), dziennie mam do bazy wpisywane ok. 150 000 rekordów,
domyślnie postawiłem to na silniku ARCHIVE żeby możliwie najbardziej zaoszczędzić, jednak ta oszczędność jest pozorna, bo jak wiemy na archive można robić tylko i wyłącznie SELECT i INSERT więc chcąc niechcąc te dane cały czas rosną na serwerze - a prawdę mówiąc po miesiącu czy trzech są przydatne jedynie w celach archiwizacji (na wszelki wypadek) - gdyby ktoś potrzebował konkretnych danych sprzed x czasu dla statystyk.
I zastanawiam się czy nie lepiej przerzucić to na InnoDB a po miesiącu archiwizować dane i oczyszczać baze.
Przeglądałem benchmarki dla silników i InnoDB wychodzi marnie - a ważne jest żeby zapytanie było wykonywane bardzo szybko.
Jak myślicie jakie rozwiązanie będzie lepsze i zdrowsze?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Pozwolę sobie wkleić fragment (z książki Wysoko wydajne MySQL. Wydanie II) dotyczący silnika ARCHIVE:

Cytat
Silnik Archive obsługuje jedynie zapytania INSERT i SELECT, a nie obsługuje indeksów.
Powoduje wykonywanie mniejszej ilości operacji I/O niż MyISAM, ponieważ buforuje zapisywane
dane, a każdy wstawiony rekord jest kompresowany za pomocą zlib. Ponadto każde
zapytanie SELECT wymaga przeprowadzenia pełnego skanowania tabeli. Tabele Archive są
idealnym rozwiązaniem, gdy potrzebujemy zarejestrować i zgromadzić dane, których analiza
wymaga skanowania całej tabeli, bądź wymagane jest wykonywanie szybkich zapytań
INSERT w celu utworzenia replikacji nadrzędnej. Dla tej samej tabeli replikacja podległa może
używać innego silnika magazynowania danych, co oznacza, że tabela w replikacji podległej
może mieć indeksy znacznie zwiększające wydajność analizy. (Więcej informacji na temat
replikacji przedstawiono w rozdziale 8.).
Silnik Archive obsługuje blokowanie na poziomie rekordu oraz specjalny system buforowania
zapewniający wysoki poziom współbieżności wykonywanych zapytań INSERT. Pozwala
na logiczny odczyt danych poprzez zatrzymanie zapytań SELECT po otrzymaniu liczby rekordów
istniejących w tabeli w chwili rozpoczęcia danego zapytania. Ogromna liczba danych
wstawianych za pomocą zapytań INSERT pozostaje niewidoczna aż do chwili zakończenia
wykonywania tych zapytań. Funkcje te emulują pewne aspekty zachowań transakcji i mechanizmu
MVCC, ale silnik magazynu danych Archive nie obsługuje transakcji. To po prostu
silnik magazynu danych zoptymalizowany pod kątem bardzo szybkiego wstawiania danych
oraz przechowywania ich w postaci skompresowanej.
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: 6.10.2025 - 13:10