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

Czy powinienem używać tabel MyISAM lub InnoDB dla mojej bazy danych MySQL?

Zawsze używaj domyślnie InnoDB.

W MySQL 5.1 później powinieneś używać InnoDB. W MySQL 5.1 powinieneś włączyć wtyczkę InnoDB . W MySQL 5.5 wtyczka InnoDB jest domyślnie włączona, więc po prostu jej używaj.

Wiele lat temu doradzano, że MyISAM jest szybszy w wielu scenariuszach. Ale to nie jest już prawdą, jeśli używasz aktualnej wersji MySQL.

Mogą istnieć pewne egzotyczne przypadki, w których MyISAM działa nieznacznie lepiej w przypadku niektórych obciążeń (np. skanowanie tabel lub praca z tylko INSERT na dużą skalę), ale domyślnym wyborem powinna być InnoDB, chyba że możesz udowodnić masz przypadek, w którym MyISAM radzi sobie lepiej.

Zalety InnoDB oprócz obsługi transakcji i kluczy obcych, o których zwykle wspomina się, to:

  • InnoDB jest bardziej odporny na uszkodzenia tabeli niż MyISAM.
  • Blokowanie na poziomie wiersza. W MyISAM czytelnicy blokują pisarzy i odwrotnie.
  • 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; cały przyszły rozwój będzie w InnoDB.

Zobacz także moją odpowiedź na MyISAM kontra InnoDB



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

  2. MySQL pomija pierwszy wiersz

  3. Rozwiązywanie problemów z replikacją MySQL:część pierwsza

  4. Wiele zapytań PDO

  5. zawartość pliku binarnego pokazana w php print_r, ale nie zapisana w mysql