Penso che il più grande gotcha sarebbe innodb essendo transazionale. Ti consigliamo di sapere se le librerie MySQL utilizzate dalle tue applicazioni auto_commit per impostazione predefinita o meno.
Python , ad esempio, non esegue il commit automatico. Ciò significa che se un'applicazione stava inserendo una riga subito prima della chiusura della sua connessione, l'inserzione verrebbe ora ripristinata dopo la modifica a innodb. Lo script python per esempio dovrebbe essere sicuro di chiamare connection.commit ();
Un altro punto di differenza potrebbe riguardare inserimenti o aggiornamenti su più righe. Prendi in considerazione un inserto a più righe
insert into tbl values (...row1...), (...row2...), (...rowN....);
Considera cosa succede se c'è un qualche tipo di errore come una collisione di chiavi univoca su row3. Con MyISAM le prime due righe sarebbero state scritte, sotto innodb tutte le righe che venivano scritte sarebbero state ritirate senza lasciare nulla di scritto al pari di tale errore.
Con innodb entrerai nel mondo dei deadlock. Questi non sono intrinsecamente cattivi a meno che non si verifichino con tale frequenza per impedire qualsiasi lavoro da svolgere. Tuttavia, le applicazioni dovranno essere codificate in modo tale da anticipare deadlock e gestirle in modo appropriato (il che molto probabilmente significa semplicemente riprovare).
Considerare le limitazioni di memoria / archiviazione. Innodb richiede molte più risorse rispetto a MyISAM. Se hai abbastanza RAM per mantenere i tuoi pool di buffer abbastanza grandi da contenere tutti i tuoi tavoli, allora sei d'oro.
Cerca tabelle con chiavi primarie di grandi dimensioni. L'indicizzazione in cluster di Innodb indica che ogni indice secondario contiene un'altra copia del PK della riga corrispondente. Se hai 2 indici secondari significa che ogni riga PK viene memorizzata 3 volte (PK + ogni indice). Se il pk si estende su più colonne e tipi di dati di grandi dimensioni (ad esempio char (N)), puoi vedere come i requisiti dell'indice possono esplodere rapidamente in innodb.