Elementi comuni (la maggior parte dei motori condivide questi principi sottostanti):
* Tabelle: L'unità organizzativa fondamentale. I dati sono raggruppati in tabelle con righe (record) e colonne (campi).
* indici: Strutture di dati che accelerano il recupero dei dati. In genere sono strutture simili agli alberi (come alberi B o indici di hash) che consentono a MySQL di individuare rapidamente le righe che corrispondono a criteri specifici senza scansionare l'intera tabella.
* File di dati: File sul disco in cui sono archiviati i dati e gli indici della tabella effettivi. Il formato esatto varia in base al motore.
* Metadati: Informazioni sul database stesso (definizioni di tabella, definizioni dell'indice, privilegi utente, ecc.). Questo è memorizzato separatamente dai dati.
* File di registro: File che registrano le modifiche apportate al database. Ciò è fondamentale per il recupero in caso di arresti anomali e per la gestione delle transazioni. Il tipo e l'uso dei file di registro dipendono fortemente dal motore di archiviazione (ad esempio, INNODB utilizza registri di ripetizione e log di annullati).
motori di archiviazione chiave e le loro strutture:
* innodB (impostazione predefinita nella maggior parte delle versioni MySQL): Questo è un blocco a livello di riga, un motore di stoccaggio conforme all'acido (atomicità, coerenza, isolamento, durabilità). È il cavallo di battaglia per la maggior parte delle applicazioni che richiedono integrità transazionale.
* Struttura: Utilizza indici cluster, in cui la chiave primaria è fisicamente raggruppata con le righe dei dati. Ciò significa che i dati sono ordinati fisicamente dalla chiave primaria. Gli indici secondari indicano la chiave primaria, rendendo efficienti le ricerche. Utilizza indici B-albero.
* File di dati: In genere utilizza i file `.ibd` (file di dati INNODB) per dati e indici della tabella. Questo mantiene i dati per ogni tabella in un singolo file.
* Vantaggi: Sicurezza delle transazioni, supporto a chiave estera, indicizzazione cluster.
* Svantaggi: Può essere più lento di Myisam per carichi di lavoro pesanti senza molti aggiornamenti.
* Myisam: Un motore più vecchio che è ancora supportato ma generalmente non consigliato per nuove applicazioni. È il blocco a livello di tavolo e non supporta le transazioni.
* Struttura: Utilizza indici non cluster. I dati e gli indici sono archiviati separatamente.
* File di dati: Utilizza i file `.myd` (dati) e` .myi` (indice) per ogni tabella.
* Vantaggi: Veloce per carichi di lavoro pesanti di lettura. Impronta di disco più piccola rispetto a InnoDB per i dati di sola lettura.
* Svantaggi: Nessun supporto alle transazioni, nessun vincolo chiave estero, bloccaggio a livello di tabella (può causare problemi di concorrenza).
* Memoria (memoria o heap): Memorizza i dati in memoria. Veloce ma volatile (dati persi sul riavvio del server). Adatto alla memorizzazione nella cache o ai dati temporanei.
* Archivio: Progettato per l'archiviazione di dati di consumo raramente. È di sola lettura dopo la creazione. La compressione viene spesso utilizzata per ridurre lo spazio di archiviazione.
* cluster NDB: Un motore di archiviazione distribuito che supporta il clustering su più server.
In sintesi:
La struttura di archiviazione di MySQL è un sistema sofisticato ottimizzato per un'efficace gestione dei dati. La scelta del giusto motore di archiviazione è cruciale per le prestazioni dell'applicazione e l'integrità dei dati. InnoDB è generalmente la scelta migliore per le applicazioni più moderne, offrendo un equilibrio di prestazioni e affidabilità. Altri motori potrebbero essere appropriati per scenari specializzati, come carichi di lavoro pesanti o distribuzioni distribuite. La comprensione delle caratteristiche di ciascun motore consente decisioni informate in merito alla progettazione e all'ottimizzazione del database.
software © www.354353.com