Quando si tratta di MySQL, non esiste alcun confronto tra i motori di archiviazione, tranne che rientra in due categorie di base:
MySQL offre l'uso di diversi motori di archiviazione
Per quanto riguarda i motori di archiviazione elencati, gli unici con conformità ACID sono InnoDB e NDB. Perché questa importazione è da menzionare? Due motivi:
- Altri motori di archiviazione non beneficiano semplicemente della presenza di più core, oltre all'I / O del disco di base, all'utilizzo della CPU e alla velocità effettiva complessiva.
- Il codice per ciascun motore di archiviazione non transazionale, che determina sostanzialmente 14 operazioni interne indipendentemente dal motore di archiviazione, non è stato progettato per sfruttare l'accesso a più core.
InnoDB in MySQL 5.5, Plugin InnoDB) e XtraDB di Percona Server hanno opzioni che puoi impostare per accedere a più core (Percona Server lo fa da più tempo). Infatti, Percona inietta circa 30.000 righe di codice appositamente per il miglioramento delle prestazioni di InnoDB con ogni nuova versione GA del codice sorgente MySQL. Possiamo essere certi che Oracle abbia incluso i propri miglioramenti dal proprio think tank per l'esecuzione in InnoDB per operazioni multicore (da MySQL 5.1.38).
Con la necessità di eseguire MVCC sui dati in combinazione con il blocco di righe / pagine, ora le prestazioni delle transazioni possono essere strumentate, misurate e configurate.
Se c'è una cosa che ho imparato sull'uso di più core, è che devi sintonizzare InnoDB in modo efficace e non fare affidamento solo su InnoDB .
AGGIORNAMENTO 2011-09-20 08:03 EDT
Per quanto riguarda InnoDB che beneficia di tutti i core, dobbiamo mantenere le cose in prospettiva. I core devono anche tendere ad altre questioni (sistema operativo, disco, memoria, applicazioni, monitoraggio, ecc.) Nel server database. Per quelli con budget modesti, molti tendono ad avere un Database Server che fornisce anche NFS, il monitoraggio da Munin, il supporto delle app per JBoss, PHP e l'elenco continua. Se si desidera che MySQL, in particolare InnoDB, utilizzi più core, il server database deve essere dedicato esclusivamente a MySQL e il sistema operativo / disco / memoria deve essere destinato esclusivamente a MySQL . Vista questa prospettiva, InnoDB coinvolgerà più core senza dubbio .
Per quanto riguarda il plug-in InnoDB, è stato menzionato semplicemente per mostrare le iniziative precedenti per avere un InnoDB migliore da parte di MySQL (eh, Oracle. Siamo spiacenti, non è ancora uscito dalla lingua). Nuove variabili per richiamare più attività di base sono diventate evidenti da MySQL 5.1.38.
Ad esempio, innodb_read_io_threads e innodb_write_io_threads (entrambi da MySQL 5.1.38) assegnano il numero specificato di thread per letture e scritture. Il valore predefinito è 4 e il massimo è 64. Le impostazioni predefinite e massime essendo così diverse (4 - 64) mostrano che InnoDB è multithread e ad alta intensità di core durante la configurazione !!!
Percona ha risposto alle esigenze della comunità MySQL per accedere a più core con InnoDB. Di conseguenza, MySQL ha iniziato a seguire l'esempio. Devo ammettere che Oracle (yuck) ha apportato i miglioramenti necessari per una maggiore attività di base.