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

Kiedy używać MyISAM i InnoDB?

Przeczytaj o Silnikach pamięci masowej .

MyISAM:

MyISAM silnik pamięci masowej w MySQL.

  • Prostsze w projektowaniu i tworzeniu, a więc lepsze dla początkujących. Nie martw się o obce relacje między tabelami.
  • Szybszy niż InnoDB w całości dzięki prostszej strukturze, a tym samym znacznie niższym kosztom zasobów serwera. -- Przeważnie już nie jest prawdą.
  • Indeksowanie pełnotekstowe. -- InnoDB już to ma
  • Szczególnie dobre dla tabel z intensywnym odczytem (wybrane). -- Przeważnie już nie jest prawdą.
  • Ślad dysku jest 2x-3x mniejszy niż w InnoDB. -- Od wersji 5.7 jest to prawdopodobnie jedyna prawdziwa zaleta MyISAM.

InnoDB:

InnoDB silnik pamięci masowej w MySQL.

  • Obsługa transakcji (obsługa ACID właściwość).
  • Blokowanie na poziomie wiersza. Posiadanie bardziej precyzyjnego mechanizmu blokowania zapewnia wyższą współbieżność w porównaniu na przykład z MyISAM .
  • Ograniczenia dotyczące kluczy obcych. Pozwalając na zapewnienie przez bazę danych integralności stanu bazy danych i relacji między tabelami.
  • InnoDB jest bardziej odporny na uszkodzenia tabeli niż MyISAM.
  • Obsługa dużej puli buforów dla danych i indeksów. Bufor klucza MyISAM jest przeznaczony tylko dla indeksów.
  • MyISAM jest w stagnacji; wszystkie przyszłe ulepszenia będą dostępne w InnoDB. Stało się to bardzo jasne wraz z wprowadzeniem wersji 8.0.

Ograniczenia MyISAM:

  • Brak kluczy obcych i kaskadowe usuwanie/aktualizacja
  • Brak integralności transakcyjnej (zgodność z ACID)
  • Brak możliwości cofania
  • 4 284 867 296 wierszy (2^32) — to stare domyślne . Konfigurowalny limit (dla wielu wersji) to 2**56 bajtów.
  • Maksymalnie 64 indeksy na tabelę

Ograniczenia InnoDB:

  • Brak pełnego indeksowania tekstu (wersja mysql poniżej 5.6)
  • Nie można skompresować do szybkiego, tylko do odczytu (wprowadzono 5.5.14 ROW_FORMAT=COMPRESSED )
  • Nie można naprawić tabeli InnoDB

W celu uzyskania krótkiego zrozumienia przeczytaj poniższe linki:

  1. Silniki MySQL:InnoDB kontra MyISAM — porównanie zalet i wad
  2. Silnik MySQL:MyISAM kontra InnoDB
  3. Jakie są główne różnice między InnoDB i MyISAM?
  4. MyISAM kontra InnoDB
  5. Jaka jest różnica między MyISAM a InnoDB?
  6. MySql:MyISAM kontra Inno DB!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja MySQL CEILING() — zaokrąglanie w górę do najbliższej liczby całkowitej

  2. Mysql:Wybierz wiersze z tabeli, których nie ma w innej

  3. Migracja Laravel:unikalny klucz jest za długi, nawet jeśli został określony

  4. Długość MySQL() a długość_znaku()

  5. Typ MySQL ENUM a dołączanie tabel