![]() |
![]() |
![]()
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? |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 13:10 |