Sommario
Il motore di archiviazione è responsabile dell'archiviazione, della gestione e del recupero delle informazioni da una tabella. I motori più conosciuti sono MyISAM e InnoDB. La scelta dell'uno o dell'altro dipenderà molto dallo scenario in cui viene applicato.La scelta è finalizzata al raggiungimento del miglior rapporto qualità in accordo con la nostra applicazione. Se abbiamo bisogno di transazioni, chiavi esterne e serrature, dovremo scegliere InnoDB. Al contrario, sceglieremo MyISAM nei casi in cui predominano le query SELECT al database.
InnoDB fornisce a MySQL un motore di storage transazionale (conforme ad ACID) con funzionalità di commit, rollback e crash recovery. InnoDB esegue blocchi a livello di riga e fornisce anche funzioni di lettura coerenti non bloccanti in stile Oracle su istruzioni SELECT. Queste funzionalità aumentano le prestazioni e la capacità di gestire più utenti simultanei. In InnoDB non è richiesto un blocco scalato perché i blocchi a livello di riga occupano pochissimo spazio. InnoDB supporta anche i vincoli FOREIGN KEY. Nelle query SQL, anche all'interno della stessa query, le tabelle di tipo InnoDB possono essere incluse liberamente con tabelle di altri tipi.
MyISAM è il motore predefinito. Per creare una tabella InnoDB, è necessario specificare l'opzione ENGINE = InnoDB o TYPE = InnoDB nell'istruzione SQL di creazione della tabella:
CREATE TABLE clienti (a INT, b CHAR (20), INDEX (a)) ENGINE = InnoDB; CREATE TABLE clienti (a INT, b CHAR (20), INDEX (a)) TYPE = InnoDB;
Vantaggi dell'utilizzo di InnoDB
Supporto per le transazioni
Blocco dei record
Ci consente di avere le caratteristiche ACID (atomicità, consistenza, isolamento e durata: atomicità, consistenza, isolamento e durata in spagnolo), garantendo l'integrità delle nostre schede.
È probabile che se la nostra applicazione fa un uso elevato di INSERT e UPDATE noteremo un aumento delle prestazioni rispetto a MyISAM.
Vantaggi dell'utilizzo di MyISAM
Recupero dati complessivamente più veloce.
Consigliato per le applicazioni che dominano le istruzioni SELECT prima di INSERT/UPDATE.
Assenza di caratteristiche di atomicità poiché non deve fare controlli di integrità referenziale, né bloccare le tabelle per eseguire le operazioni, questo ci porta, come i punti precedenti, ad una velocità maggiore.
Il motore di archiviazione (storage-engine) è responsabile dell'archiviazione, della gestione e del recupero delle informazioni da una tabella. I motori più conosciuti sono MyISAM e InnoDB. La scelta dell'uno o dell'altro dipenderà molto dallo scenario in cui viene applicato, ma arsys.es vuole aiutarci a capire meglio questi noti motori di archiviazione.
La scelta è finalizzata al raggiungimento del miglior rapporto qualità in accordo con la nostra applicazione. Se abbiamo bisogno di transazioni, chiavi esterne e serrature, dovremo scegliere InnoDB. Al contrario, sceglieremo MyISAM nei casi in cui predominano le query SELECT al database.
InnoDB fornisce a MySQL un motore di archiviazione transazionale (conforme ad ACID) con funzionalità di commit, rollback e crash recovery. InnoDB esegue blocchi a livello di riga e fornisce anche funzioni di lettura coerenti non bloccanti in stile Oracle su istruzioni SELECT. Queste funzionalità aumentano le prestazioni e la capacità di gestire più utenti simultanei. In InnoDB non è richiesto un blocco scalato perché i blocchi a livello di riga occupano pochissimo spazio. InnoDB supporta anche i vincoli FOREIGN KEY. Nelle query SQL, anche all'interno della stessa query, le tabelle di tipo InnoDB possono essere incluse liberamente con tabelle di altri tipi.
MyISAM è il motore predefinito. Per creare una tabella InnoDB, è necessario specificare l'opzione ENGINE = InnoDB o TYPE = InnoDB nell'istruzione SQL di creazione della tabella:
CREATE TABLE clienti (a INT, b CHAR (20), INDEX (a)) ENGINE = InnoDB; CREATE TABLE clienti (a INT, b CHAR (20), INDEX (a)) TYPE = InnoDB;
Vantaggi dell'utilizzo di InnoDB
Supporto di transazioni, stored procedure, trigger
Blocco dei record
Ci consente di avere le caratteristiche ACID (atomicità, consistenza, isolamento e durata: atomicità, consistenza, isolamento e durata in spagnolo), garantendo l'integrità delle nostre schede.
È probabile che se la nostra applicazione fa un uso elevato di INSERT e UPDATE noteremo un aumento delle prestazioni rispetto a MyISAM.
Vantaggi dell'utilizzo di MyISAM
Recupero dati complessivamente più veloce.
Consigliato per le applicazioni che dominano le istruzioni SELECT prima di INSERT/UPDATE.
Assenza di caratteristiche di atomicità poiché non deve fare controlli di integrità referenziale, né bloccare le tabelle per eseguire le operazioni, questo ci porta, come i punti precedenti, ad una velocità maggiore.
La tua tabella riceverà INSERT, UPDATE e DELETE molto più a lungo di quanto verrà interrogato?
Preferisci o richiedi la progettazione di database relazionali?
È conveniente usare InnoDB
Avrai bisogno di fare ricerche full-text?
Lo spazio su disco o la memoria sono un problema?
Il tuo motore deve essere MyISAMTi è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo