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

Quando usare MyISAM e InnoDB?

Leggi i Motori di archiviazione .

Il mioISAM:

Il MyISAM motore di archiviazione in MySQL.

  • Più semplice da progettare e creare, quindi migliore per i principianti. Nessuna preoccupazione per le relazioni estere tra i tavoli.
  • Più veloce di InnoDB nel complesso grazie alla struttura più semplice, quindi molto meno costi delle risorse del server. -- Per lo più non è più vero.
  • Indicizzazione full-text. -- InnoDB ce l'ha ora
  • Particolarmente adatto per tabelle (selezionate) ad alta intensità di lettura. -- Per lo più non è più vero.
  • L'ingombro del disco è 2x-3x inferiore a quello di InnoDB. -- A partire dalla versione 5.7, questo è forse l'unico vero vantaggio di MyISAM.

InnoDB:

InnoDB motore di archiviazione in MySQL.

  • Supporto per le transazioni (che fornisce supporto per ACID proprietà).
  • Blocco a livello di riga. Avere un meccanismo di bloccaggio a grana più fine offre una maggiore concorrenza rispetto, ad esempio, a MyISAM .
  • Limiti di chiave straniera. Consentendo al database di garantire l'integrità dello stato del database e le relazioni tra le tabelle.
  • InnoDB è più resistente alla corruzione delle tabelle rispetto a MyISAM.
  • 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; tutti i miglioramenti futuri saranno in InnoDB. Questo è stato ampiamente chiarito con il lancio della versione 8.0.

Limiti MyISAM:

  • Nessuna chiave esterna e cancellazioni/aggiornamenti a cascata
  • Nessuna integrità transazionale (conformità ACID)
  • Nessuna capacità di ripristino
  • 4.284.867.296 limite di righe (2^32) -- Questo è vecchio predefinito . Il limite configurabile (per molte versioni) è stato di 2**56 byte.
  • Massimo 64 indici per tabella

Limitazioni InnoDB:

  • Nessuna indicizzazione del testo completo (versione MySQL inferiore a 5.6)
  • Non può essere compresso per una lettura veloce e di sola lettura (5.5.14 introdotto ROW_FORMAT=COMPRESSED )
  • Non puoi riparare una tabella InnoDB

Per una breve comprensione, leggi i link di seguito:

  1. Motori MySQL:InnoDB e MyISAM:un confronto tra pro e contro
  2. Motori MySQL:MyISAM vs. InnoDB
  3. Quali sono le principali differenze tra InnoDB e MyISAM?
  4. MyISAM contro InnoDB
  5. Qual ​​è la differenza tra MyISAM e InnoDB?
  6. MySql:MyISAM vs. Inno DB!