sql >> Database teknologi >  >> RDS >> Mysql

Skal jeg bruge MyISAM- eller InnoDB-tabeller til min MySQL-database?

Brug altid InnoDB som standard.

I MySQL 5.1 senere bør du bruge InnoDB. I MySQL 5.1 bør du aktivere InnoDB-pluginnet . I MySQL 5.5 er InnoDB-plugin'et aktiveret som standard, så brug det bare.

Rådet for år tilbage var, at MyISAM var hurtigere i mange scenarier. Men det er ikke længere sandt, hvis du bruger en aktuel version af MySQL.

Der kan være nogle eksotiske hjørnetilfælde, hvor MyISAM yder marginalt bedre for visse arbejdsbelastninger (f.eks. tabelscanninger eller arbejde med kun INSERT i høj volumen), men standardvalget bør være InnoDB, medmindre du kan bevise du har en sag om, at MyISAM klarer sig bedre.

Fordele ved InnoDB udover understøttelsen af ​​transaktioner og fremmednøgler, der normalt nævnes, omfatter:

  • InnoDB er mere modstandsdygtig over for bordkorruption end MyISAM.
  • Låsning på rækkeniveau. I MyISAM blokerer læsere for forfattere og omvendt.
  • Understøttelse af stor bufferpulje til både data og indekser. MyISAM-nøglebuffer er kun til indekser.
  • MyISAM er stillestående; al fremtidig udvikling vil være i InnoDB.

Se også mit svar til MyISAM versus InnoDB



  1. Hvordan læser man indholdet af en .sql-fil ind i et R-script for at køre en forespørgsel?

  2. Få den sidste dag i måneden i PostgreSQL

  3. hente parameter fra lagret procedure?

  4. Hent Insert Statement for eksisterende række i MySQL