sql >> Database >  >> RDS >> Mysql

Moet ik MyISAM- of InnoDB-tabellen gebruiken voor mijn MySQL-database?

Gebruik standaard altijd InnoDB.

In MySQL 5.1 later zou u InnoDB moeten gebruiken. In MySQL 5.1 moet u de InnoDB-plug-in inschakelen . In MySQL 5.5 is de InnoDB-plug-in standaard ingeschakeld, dus gebruik deze gewoon.

Het advies was jaren geleden dat MyISAM in veel scenario's sneller was. Maar dat is niet langer het geval als je een actuele versie van MySQL gebruikt.

Er kunnen enkele exotische hoekgevallen zijn waarin MyISAM marginaal beter presteert voor bepaalde workloads (bijv. tabelscans of INSERT-werk met een hoog volume), maar de standaardkeuze zou InnoDB moeten zijn, tenzij u kunt bewijzen u heeft een zaak die MyISAM beter doet.

Voordelen van InnoDB naast de meestal genoemde ondersteuning voor transacties en refererende sleutels zijn:

  • InnoDB is beter bestand tegen corruptie van tabellen dan MyISAM.
  • Vergrendeling op rijniveau. In MyISAM blokkeren lezers schrijvers en vice versa.
  • Ondersteuning voor grote bufferpool voor zowel gegevens als indexen. MyISAM-sleutelbuffer is alleen voor indexen.
  • MijnISAM stagneert; alle toekomstige ontwikkelingen zullen in InnoDB plaatsvinden.

Zie ook mijn antwoord op MyISAM versus InnoDB



  1. twee woorden en lege spaties werken niet in MYSQL-query met LIKE

  2. Wat is de standaardnaam van de beperking in MySQL?

  3. ODBC gebruiken met Salesforce en Azure Active Directory (AD) Single Sign On (SSO)

  4. MySQL match() against() - volgorde op relevantie en kolom?