Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Silnik przechowywania Mysql dla tabeli dziennika

Cóż, zgodnie z twoim pytaniem, InnoDB powinien wykonać pracę, ponieważ:

  1. Skalowalność jest o wiele lepsza niż MyISAM
  2. To blokowanie wierszy, dlatego jeśli masz mieć więcej zapisów niż zaznaczeń, pasuje to lepiej.
  3. Na koniec, skoro powiedziałeś, że będą one rzadko używane, nie ma potrzeby korzystania z MyISAM, ponieważ jest lepszy w przypadku wybranych zapytań.

Sprawdź, aby uzyskać więcej informacji

EDYTUJ

Cóż, w komentarzu pytasz o inne silniki. Oto pełna lista silników. Wśród nich, jak powiedziałeś, archiwum ma wadę, inne nie pasują do twojej prośby. Oto cytat ze strony MySQL:

InnoDB has been designed for maximum performance when processing large data volumes. 
Its CPU efficiency is probably not matched by any other disk-based relational database
engine.

A więc w zasadzie:

  1. Jeśli zamierzasz używać PAMIĘCI, nie rób tego tak, jak powiedziałeś, że nie będziesz miał dużo dostępu do danych, a Twój stół za bardzo się powiększy. Będziesz potrzebować do tego dużo pamięci RAM, a po ponownym uruchomieniu wszystkie dane zostaną utracone.
  2. Jeśli zamierzasz używać MyISAM, nie rób tego, ponieważ jest on przeznaczony dla tabel, w których zapytania wybierające są częstsze niż wstawianie i aktualizowanie.
  3. Jeśli chodzi o archiwum, to twój wybór. Tutaj jest porównaniem MyISAM i archiwum dla tabeli dziennika. Trzymałbym się jednak InnoDB.
  4. Nie wspomnę nawet Merge, Blackhole, Example i innych silników. (Nie mam dużej wiedzy na temat silnika CSV, ale o ile czytałem, nie jest to odpowiedni silnik do tego rodzaju tabeli.

Szczerze mówiąc, spędzałem dużo czasu przed wykonaniem ważnego ruchu w kodowaniu. Szukałem godzinami, a może i dniami na temat jakiegoś problemu, aby zobaczyć, który sposób jest najbardziej odpowiedni. Powiem ci co, badania są dobre, ale po pewnym czasie, jeśli uniemożliwiają ci pracę, powinieneś przestać, wypić kawę i od razu dokonać wyboru. Dlatego po prostu wypróbuj najbardziej odpowiednią dla siebie, a jak doświadczysz, znajdziesz jeszcze lepszy sposób, próbując samemu. To znaczy, nie wierzę, że Facebook był zaprojektowany na taki wolumen, ale w miarę wzrostu, nadal odpowiednio zmieniali strukturę. Jednak wierzę w to, co może nie być rzeczywistością :) W każdym razie, miej nadzieję, że informacje ci pomogą.

EDYTUJ 2013

Poniżej znajdziesz krótkie opisy wbudowanych silników pamięci masowej MySQL.

MyISAM

Tabele te zawierają dodatkowe optymalizacje, takie jak zaawansowana pamięć podręczna i mechanizmy indeksowania, które zapewniają szybki dostęp do danych. Używając blokowania na poziomie tabeli, mechanizm pamięci masowej MyISAM zapewnia współbieżne operacje. Kiedy wydajność odczytu jest problemem, zazwyczaj wybór MyISAM jest wyborem.

Pamięć

Nazywane również tabelami sterty, tabele pamięci są idealne do szybkiego wyszukiwania często używanych danych, które rzadko są zmieniane (takich jak kody krajów, kody pocztowe lub inne tabele wyszukiwania). Jak sama nazwa wskazuje, dane są przechowywane w pamięci, dzięki czemu dostęp jest znacznie szybszy niż dane przechowywane na dyskach. Jednym z istotnych ograniczeń korzystania z pamięci jest to, że dane są ważne podczas sesji MySQL. Kiedy się zawiesza lub wyłącza, dane są tracone.

InnoDB

Jednym z przypadków, w których będziesz musiał użyć tego aparatu magazynu, jest konieczność użycia kluczy obcych lub transakcji. InnoDB jest bardziej współbieżny niż MyISAM, ponieważ zapewnia blokowanie na poziomie wiersza. Silnik pamięci masowej jest wysoce niezawodny. Innym przypadkiem, w którym będziesz chciał użyć tej pamięci, jest więcej zapisów niż odczytów. Jeśli często zapisujesz dane w tabeli, spróbuj użyć tej pamięci, jeśli jest ona bardziej zbieżna niż MyISAM.

Archiwum

Przeznaczony jest do przechowywania dużych ilości danych w skompresowanym formacie. Jednym z przypadków użycia tego silnika magazynu jest przechowywanie danych archiwalnych lub historycznych lub dzienników bezpieczeństwa. Tabela nie używa indeksów, więc do codziennego pobierania i przechowywania danych nie jest dobrym wyborem. Jest to blokowanie na poziomie wiersza, a dane są dekompresowane w locie, gdy jest to wymagane. Co więcej, zmiana tabeli nie jest możliwa.

Scal

Scal służy do „scalania” partycjonowanych tabel, które znajdują się na tej samej maszynie. Kiedy dzielisz dużą tabelę na kilka mniejszych i uzyskujesz do nich dostęp jednocześnie za pomocą tabeli scalającej, największą korzyścią jest jej szybkość. Wyszukiwanie i sortowanie przebiega szybciej, ponieważ w tabelach jest mniej danych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sekcje pliku konfiguracyjnego Mysql

  2. Jak dołączyć do MySQL i Postgres w zmaterializowanym widoku na żywo

  3. Jak usunąć rekord mysql za pomocą jquery

  4. Zapytanie Rails 3 pod warunkiem zliczenia asocjacji

  5. Żagle nie mogą połączyć się z mySql