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

Devo usare le tabelle MyISAM o InnoDB per il mio database MySQL?

Utilizza sempre InnoDB per impostazione predefinita.

In MySQL 5.1 successivo, dovresti usare InnoDB. In MySQL 5.1, dovresti abilitare il plug-in InnoDB . In MySQL 5.5, il plug-in InnoDB è abilitato per impostazione predefinita, quindi usalo.

Il consiglio anni fa era che MyISAM era più veloce in molti scenari. Ma questo non è più vero se usi una versione corrente di MySQL.

Potrebbero esserci alcuni casi esotici in cui MyISAM funziona leggermente meglio per determinati carichi di lavoro (ad es. scansioni di tabelle o lavoro solo INSERT ad alto volume), ma la scelta predefinita dovrebbe essere InnoDB a meno che tu non possa dimostrare hai un caso che MyISAM fa meglio.

I vantaggi di InnoDB oltre al supporto per le transazioni e le chiavi esterne che di solito viene menzionato includono:

  • InnoDB è più resistente alla corruzione delle tabelle rispetto a MyISAM.
  • Blocco a livello di riga. In MyISAM, i lettori bloccano gli scrittori e viceversa.
  • Supporto per pool di buffer di grandi dimensioni sia per i dati che per gli indici. Il buffer delle chiavi MyISAM è solo per gli indici.
  • MyISAM è stagnante; tutto lo sviluppo futuro sarà in InnoDB.

Vedi anche la mia risposta a MyISAM contro InnoDB