sql >> Databasteknik >  >> RDS >> Mysql

Ska jag använda MyISAM- eller InnoDB-tabeller för min MySQL-databas?

Använd alltid InnoDB som standard.

I MySQL 5.1 senare bör du använda InnoDB. I MySQL 5.1 bör du aktivera InnoDB plugin . I MySQL 5.5 är InnoDB-pluginen aktiverad som standard så använd den bara.

Råden för år sedan var att MyISAM var snabbare i många scenarier. Men det är inte längre sant om du använder en aktuell version av MySQL.

Det kan finnas några exotiska hörnfall där MyISAM presterar marginellt bättre för vissa arbetsbelastningar (t.ex. tabellsökningar eller högvolymsarbete endast INSERT), men standardvalet bör vara InnoDB om du inte kan bevisa du har ett fall att MyISAM gör det bättre.

Fördelarna med InnoDB förutom stödet för transaktioner och främmande nycklar som brukar nämnas inkluderar:

  • InnoDB är mer motståndskraftig mot tabellkorruption än MyISAM.
  • Låsning på radnivå. I MyISAM blockerar läsare skribenter och vice versa.
  • Stöd för stor buffertpool för både data och index. MyISAM-nyckelbuffert är endast för index.
  • MyISAM är stillastående; all framtida utveckling kommer att ske i InnoDB.

Se även mitt svar på MyISAM kontra InnoDB



  1. Använda MySQLi för att INFOGA data i en databas

  2. Oracle RAC VIP och ARP Primer

  3. Lagra GUID i MySQL från C#

  4. Begränsar MySQL 3306-porten till lokal värd med IPTABLER