09 febbraio 2011

La scalabilità di MyISAM secondo Oracle

Oracle ha divulgato i risultati di un test del MySQL performance team in cui sono state messe a confronto le prestazioni dei motori MyISAM e InnoDB di MySQL.

Il grafico nel blog è eloquente: dall'andamento delle curve non posso pensare ad altro che agli effetti della serializzazione completa delle operazioni di MyISAM, rispetto all'efficienza del multi-versioning operato da InnoDB.
Certo il multi-versioning costa, è pesante da gestire, rallenta le query singolarmente, ma la scalabilità è un'altra cosa.

Il whitepaper scaricabile è illuminante, soprattutto nei paragrafi "Comparing InnoDB & MyISAM" e "Conclusions", in cui si leggono senza giri di parole vantaggi e svantaggi delle due soluzioni, e anche i loro impieghi più adatti.
La versione di InnoDB presa in esame è l'ultima, la 1.1, in cui sono stati introdotti grandi miglioramenti (tutti riportati in dettaglio), ma il discorso rimane valido anche per le versioni precedenti: basta guardare i grafici dell'appendice B.

Non sorprende che da MySQL 5.5 il motore di default diventa InnoDB, raccomandato per le nuove applicazioni.