sql >> Databáze >  >> RDS >> Mysql

Mám pro svou databázi MySQL používat tabulky MyISAM nebo InnoDB?

Vždy používejte InnoDB jako výchozí.

V MySQL 5.1 později byste měli používat InnoDB. V MySQL 5.1 byste měli povolit plugin InnoDB . V MySQL 5.5 je plugin InnoDB ve výchozím nastavení povolen, takže jej stačí použít.

Rada před lety byla, že MyISAM byl v mnoha scénářích rychlejší. To však již neplatí, pokud používáte aktuální verzi MySQL.

Mohou existovat některé exotické rohové případy, kdy MyISAM funguje o něco lépe pro určité pracovní zátěže (např. skenování tabulek nebo práce pouze s velkým objemem INSERT), ale výchozí volbou by měla být InnoDB, pokud nedokážete máte případ, který MyISAM umí lépe.

Mezi výhody InnoDB kromě obvykle uváděné podpory transakcí a cizích klíčů patří:

  • InnoDB je odolnější vůči poškození tabulek než MyISAM.
  • Zamykání na úrovni řádků. V MyISAM čtenáři blokují autory a naopak.
  • Podpora velkého fondu vyrovnávací paměti pro data i indexy. Klíčová vyrovnávací paměť MyISAM je určena pouze pro indexy.
  • MyISAM stagnuje; veškerý budoucí vývoj bude v InnoDB.

Viz také moje odpověď na MyISAM versus InnoDB



  1. Zobrazit všechny tabulky v databázi MySQL pomocí PHP?

  2. OMEZENÍ MySQL a ŽÁDNÁ AKCE

  3. Vybrané sloupce nemají kompatibilní typ, i když mají stejný typ

  4. Dokončete proces kopírování tabulky z jedné databáze do druhé (Export-Import) na SQL Server